diff --git a/CONTRIBUTINGpt_BR.md b/CONTRIBUTINGpt_BR.md new file mode 100644 index 00000000..107e412c --- /dev/null +++ b/CONTRIBUTINGpt_BR.md @@ -0,0 +1,67 @@ +Read this in other languages: [русский](CONTRIBUTINGru.md), [Nederlands](CONTRIBUTINGnl.md), [Français](CONTRIBUTINGfr.md), [Türkçe](CONTRIBUTINGtr.md), [українська](CONTRIBUTINGuk.md), [Polski](CONTRIBUTINGpl.md) + +# Bem-vindo ao Guia de contribuição do Return YouTube Dislikes + +Thank you for investing your time in contributing to our project! All your changes will be reflected in the next version of the extension (or the [website](https://www.returnyoutubedislike.com/)). + +## Vamos ao começo + +Por favor use o Prettir com a configurações padrão de formatação. + +#### Prerequisites + +vocÊ precisa ter node e npm instalado para criar um You need to have node and npm installed to create the bundled version of the source. + +Versões que usará quando estiver trabalhando nisso: + +- node: 12.18.4 +- npm: 6.14.6 + +To create the `bundled-content-script.js` that contains most of the business logic of this extension you have to install all dependencies first. + +1. Vá para a raiz do repositorio e execute: + +``` +npm install +``` + +2. Execute o seguinte comando para criar `bundled-content-script.js` which (what is?) e usando no `manifest.json` + +``` +npm start // to create the build file(s) and start a file watcher that hot-reloads on save + +// ou + +npm run build // para criar uma build para cria um arquivo de build +``` + +Congratulations, You are now ready to develop! + +If you are new to developing Chrome extensions, or need extra help, please see [this YouTube tutorial](https://www.youtube.com/watch?v=mdOj6HYE3_0) + +### Problemas + +#### Abrindo um novo problema + +Se voce tiver qualquer problema com a extensão, por favor pesquisa o que faz o problema antes de reporta-lo de fato. Se não houver, abra um probelma, usando o formulario de problema é recomendado mas não é uma obrigação. + +#### Solucionando um problema + +Se você tiver um problema If you found an issue that you feel you might be able to solve, Não seja "shy"? . Abra um PR(Pull Request)com a correção e faça uma menção do problema que está consertando. + +### Requisitação de Recurso + +#### Abrindo uma nova requisitação de recurso + +Se você tem alguma ideia para a extensão, sinta livre para abrir uma requisitação de recurso, mas por favor pesquise isso antes para não perder seu tempo com sua sugestão. Usando o formulario de recurso é altamente recomendado mas não é um obrigação. + +#### Implementando uma requisitação de recurso + +If you found a feature that you feel you might be able to implement, don't be shy. Open a PR with the fix and make sure to mention the feature you are implementing. + +### What PRs do we accept? + +- Resolução de problemas. +- Implementação de recurso. +- Marcação, melhoria facilitação de palavras usadas. +- Contribuição para o Website. diff --git a/Docs/FAQ.md b/Docs/FAQ.md index 332d154e..dab31a36 100644 --- a/Docs/FAQ.md +++ b/Docs/FAQ.md @@ -1,4 +1,5 @@ -Read this in other languages: [русский](FAQru.md), [Français](FAQfr.md), [Nederlands](FAQnl.md), [Türkçe](FAQtr.md), [українська](FAQuk.md), [Polski](FAQpl.md), [Deutsch](FAQde.md) +Read this in other languages: [русский](FAQru.md), [Français](FAQfr.md), [Nederlands](FAQnl.md), [Türkçe](FAQtr.md), [українська](FAQuk.md), [Polski](FAQpl.md), [Deutsch](FAQde.md), [Português do Brasil](FAQpt_BRmd) + # Frequently Asked Questions diff --git a/Docs/FAQpt_BRmd b/Docs/FAQpt_BRmd new file mode 100644 index 00000000..7dc5448f --- /dev/null +++ b/Docs/FAQpt_BRmd @@ -0,0 +1,61 @@ +Leia isso em outros Idiomas: [русский](FAQru.md), [Français](FAQfr.md), [Nederlands](FAQnl.md), [Türkçe](FAQtr.md), [українська](FAQuk.md), [Polski](FAQpl.md) + +# Frequently Asked Questions + +## Before asking a question on GitHub or Discord, please refer to this. + +
+ +### **1. Where does this extension get the data?** + +A Combination of Google APIs and scraped data. + +We save all available data to our DB for it to be available after Google shuts down dislike counts in their API. + +
+ +### **2. Video dislike count doesn't update** + +Right now video dislikes are cached, and aren't updated very frequenly. Once every 2-3 days, not more often. + +Yeah, it's not ideal, but it is what it is. Working on improving how often we can update them. + +
+ +### **3. How does this work?** + +The extension collects the video id of the video you are watching, fetches the dislike (and other fields like views, likes etc) using our API, if this is the first time the video was fetched by our API, it will use the YouTube API to get the data, then stores the data in a database for caching (cached for around 2-3 days) and archiving purposes and returns it to you. The extension then displays the dislikes to you. + +
+ +### **4. What will happen after the YouTube API stops returning the dislike count?** + +The backend will switch to using a combination of archived dislike stats, estimates extrapolated from extension user data and estimates based on view/like ratios for videos whose dislikes weren't archived and for outdated dislike archives. + +
+ +### **5. How is the dislike count calculated?** + +RYD uses the votes from its users to extrapolate the dislike count. + +- If the video was uploaded after the API was shut down: + + $$ \textup{RYD Dislike Count} = \left( \frac{\textup{RYD Users Dislike Count}}{\textup{RYD Users Like Count}} \right) \times \textup{Public Like Count} $$ + +- If the RYD database somehow had the actual like and dislike count (provided by the uploader or from the archive), the dislike count will be calculated based on both - the users' votes and the archived value. The archived value will have less influence on the final count as it ages. + +
+ +--- + +Essa a This in video form + +[![IReturn YouTube Dislike Explained](https://yt-embed.herokuapp.com/embed?v=GSmmtv-0yYQ)](https://www.youtube.com/watch?v=GSmmtv-0yYQ) + +--- + +
+ +## I have security / privacy concerns + +See [this page](SECURITY-FAQpt_BR.md) for more info. diff --git a/Docs/SECURITY-FAQpt_BR.md b/Docs/SECURITY-FAQpt_BR.md new file mode 100644 index 00000000..ea19804e --- /dev/null +++ b/Docs/SECURITY-FAQpt_BR.md @@ -0,0 +1,31 @@ +Leia isso em outros idiomas: [русский](SECURITY-FAQru.md), [Nederlands](SECURITY_FAQnl.md), [Français](SECURITY-FAQfr.md), [Türkçe](SECURITY-FAQtr.md), [українська](SECURITY-FAQuk.md), [Polski](SECURITY-FAQpl.md) + +# Segurança + +### Are you tracking my viewing history? + +No. The extension's code is public and you can see it for yourself. The only information being sent is the video ID, which is required to fetch the dislike count for the videos. There are no additional headers being sent. Over the communication layer, your public IP will be exposed to the server, as well as the time when the request was made. However, none of these are uniquely identifying you in any way. Assuming a zero-trust environment, the best we could get is a dynamic IP. Which, today is yours, tomorrow is your neighbor's. If you're really worried about your IP being traced, you probably already use a VPN. + +### Can you uniquely identify me if I dislike? + +Yes. When you dislike a video, we create a randomly generated unique ID for you that is not tied to your Google account. This is done to prevent botting. But there is no way to tie this random Id to you or your personal YouTube account. + +### Quais as informações que você tem, exatamente? + +Somente seu video ID. Não temos seus comentarios, seu nome de usuario, ou qualquer outro Not your comments, not your username, not who you've shared the video with, not any additional metadata. NADA. Apenas seu Video ID. + +### How is my IP stored? + +The backend keeps unhashed IP addresses in volatile memory (RAM) only. These addresses aren't stored on a hard drive, and therefore aren't logged. We hash the IP addresses, and that's stored instead. This is done to prevent database vandalism. + +### I heard some discussion over OAuth, and access to my YouTube account! + +This feature will be optional, and very much opt-in. If you are a YouTube creator, and would like to share your dislike stats with us, you can. The way [OAuth](https://en.wikipedia.org/wiki/OAuth#:~:text=but%20without%20giving%20them%20the%20passwords.) was structured, it's actually very secure. You can revoke access to your account at any time, and can give very specific permissions to us. We will not ask for any permissions that aren't required. We'll only ask for permissions to view your video stats. + +### How can I trust this dislike count? + +We have implemented measures to prevent bot attacks and are gonna continue to work on improving the effectiveness of the bot prevention system: this will help us keep the dislike count as a good representative of the actual count. Of course it will never be 100% accurate so it's up to you to decide whether you trust the count or not. + +### Why don't you share the backend code? + +We will share it at some point - but there's really no real reason to share it right now. It gives a false sense of security - because in a zero-trust system, we could just as well disclose one version but deploy another. There are plenty of reasons to keep the code hidden, specifically, how we battle spam. Hiding/Obfuscating the spam handling code is a fairly standard practice. diff --git a/Docs/readmept_BR.md b/Docs/readmept_BR.md new file mode 100644 index 00000000..bfe92b42 --- /dev/null +++ b/Docs/readmept_BR.md @@ -0,0 +1,39 @@ +Leia isso em outros idiomas: [Nederlands](readmenl.md), [Français](readmefr.md), [Türkçe](readmetr.md) + +**Contents** + +- [Guides](#guides) +- [FAQs](#faqs) + + +
+ +## Guides + +- [Downloading, Installing & Using](https://github.com/Anarios/return-youtube-dislike/wiki/Downloading,-Installing-&-Using) +- [Troubleshooting](https://github.com/Anarios/return-youtube-dislike/wiki/Troubleshooting-Guide) + + + +
+ +## FAQs + +- [General](https://github.com/Anarios/return-youtube-dislike/blob/main/Docs/FAQ.md) +- [Security](https://github.com/Anarios/return-youtube-dislike/blob/main/Docs/SECURITY-FAQ.md) + + diff --git a/Extensions/combined/_locales/pt_BR/messages.json b/Extensions/combined/_locales/pt_BR/messages.json index 857dd489..03df46d3 100644 --- a/Extensions/combined/_locales/pt_BR/messages.json +++ b/Extensions/combined/_locales/pt_BR/messages.json @@ -6,10 +6,10 @@ "message": "Voltar Dislikes do YouTube Beta" }, "extensionDesc": { - "message": "Voltar os Deslikes do YouTube" + "message": "Retorna a capacidade de ver os não-gostados" }, "textDeveloper": { - "message": "por Dmitry Selivanov e Comunidade" + "message": "por Dmitry Selivanov & Comunidade" }, "linkWebsite": { "message": "Website" @@ -23,20 +23,62 @@ "linkHelp": { "message": "Ajuda" }, + "linkChangelog": { + "message": "O que mudou?" + }, "legendSettings": { "message": "Configurações" }, "textSettings": { - "message": "Desativar envio de Curtidas/Não Curtidas" + "message": "Desativar envios de Gostei/Não gostei" }, "textLikesDisabled": { "message": "Desativado pelo proprietário" }, "textSettingsHover": { - "message": "Parar de contar suas curtidas e não curtidas." + "message": "Pare de contar os gostei e Não gostei." + }, + "textRoundingNumbers": { + "message": "Arredondar estatísticas gostei/não gostei (comportamento padrão do YouTube)" + }, + "textRoundingNumbersHover": { + "message": "Mostrar números arredondados." + }, + "textConsistentFormat": { + "message": "Torna consistentes os Gostados e o formato não gostei" + }, + "textConsistentFormatHover": { + "message": "Reformatar números como." + }, + "textNumberFormat": { + "message": "Formato do número:" + }, + "textColorizeRatioBar": { + "message": "Colorir barra de proporção" + }, + "textColorizeRatioBarHover": { + "message": "Use cores personalizadas para os ícones miniaturas." + }, + "textColorizeThumbs": { + "message": "Colorir miniaturas" + }, + "textColorizeThumbsHover": { + "message": "Use cores personalizadas para os ícones miniaturas." + }, + "textColorTheme": { + "message": "Tema de cor:" + }, + "textColorTheme1": { + "message": "Clássico" + }, + "textColorTheme2": { + "message": "Acessível" + }, + "textColorTheme3": { + "message": "Neon" }, "textTempUnavailable": { - "message": "Temporariamente indisponível" + "message": "Temporariamente Indisponível" }, "textUpdate": { "message": "Atualizar para" @@ -45,18 +87,48 @@ "message": "Versão __RYD_VERSION__ instalada" }, "whatsnew": { - "message": "O que há de novo?" + "message": "O que há de novo?:" }, "shortsSupport": { - "message": "Suporte para Shorts" + "message": "Suporte ao Shorts do YouTube" }, "customColors": { - "message": "Cores personalizadas para barra de não curtidas e botões" + "message": "Cores personalizadas para exibir barra de não curtidas e botões" }, "customNumberFormats": { - "message": "Formato de números personalizados" + "message": "Formatos de números personalizados" }, "considerDonating": { "message": "A única coisa que mantém a extensão funcionando são suas doações, considere apoiar o projeto." + }, + "roundNumbers": { + "message": "Mostrar números arredondados" + }, + "roundNumbersHover": { + "message": "Arredondar estatísticas gostei/não gostei (comportamento padrão do YouTube)." + }, + "reformatLikes": { + "message": "Reformatar números como" + }, + "reformatLikesHover": { + "message": "Torna consistentes os Gostados e o formato não gostei." + }, + "numberFormat": { + "message": "Formato do número:" + }, + "colorizeRatio": { + "message": "Colorir barra de proporção" + }, + "colorizeRatioHover": { + "message": "Use cores personalizadas para os ícones miniaturas." + }, + "colorizeThumbs": { + "message": "Colorir miniaturas" + }, + "colorizeThumbsHover": { + "message": "Use cores personalizadas para os ícones miniaturas." + }, + "colorTheme": { + "message": "Tema de cor:" } } diff --git a/README.md b/README.md index 04f74fa6..9dd82d9b 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ [![Discord](https://img.shields.io/discord/909435648170160229?label=Discord&style=flat&logo=discord)](https://discord.gg/UMxyMmCgfF) [![License](https://img.shields.io/badge/License-GPLv3-blue.svg?style=flat)](https://github.com/Anarios/return-youtube-dislike/blob/main/LICENSE) -Read this in other languages: [русский](READMEru.md), [Español](READMEes.md), [Nederlands](READMEnl.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md) +Read this in other languages: [русский](READMEru.md), [Español](READMEes.md), [Nederlands](READMEnl.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md), [Português do Brasil](READMEpt_BR.md) # Return YouTube Dislike diff --git a/READMEpt_BR.md b/READMEpt_BR.md new file mode 100644 index 00000000..b558ac0e --- /dev/null +++ b/READMEpt_BR.md @@ -0,0 +1,94 @@ +[![Chrome Web Store](https://img.shields.io/chrome-web-store/stars/gebbhagfogifgggkldgodflihgfeippi?label=Chrome%20Rating&style=flat&logo=google)](https://chrome.google.com/webstore/detail/youtube-dislike-button/gebbhagfogifgggkldgodflihgfeippi/) +[![Chrome Web Store Users](https://img.shields.io/chrome-web-store/users/gebbhagfogifgggkldgodflihgfeippi?label=Chrome%20Users&style=flat&logo=google)](https://chrome.google.com/webstore/detail/youtube-dislike-button/gebbhagfogifgggkldgodflihgfeippi/) +[![Mozilla rating](https://img.shields.io/amo/stars/return-youtube-dislikes?label=Firefox%20Rating&style=flat&logo=firefox)](https://addons.mozilla.org/en-US/firefox/addon/return-youtube-dislikes/) +[![Mozilla downloads](https://img.shields.io/amo/users/return-youtube-dislikes?label=Firefox%20Users&style=flat&logo=firefox)](https://addons.mozilla.org/en-US/firefox/addon/return-youtube-dislikes/) +[![Commit rate](https://img.shields.io/github/commit-activity/m/Anarios/return-youtube-dislike?label=Commits&style=flat)](https://github.com/Anarios/return-youtube-dislike/commits/main) +[![Issues](https://img.shields.io/github/issues/Anarios/return-youtube-dislike?style=flat&label=Issues)](https://github.com/Anarios/return-youtube-dislike/issues) +[![Discord](https://img.shields.io/discord/909435648170160229?label=Discord&style=flat&logo=discord)](https://discord.gg/UMxyMmCgfF) +[![License](https://img.shields.io/badge/License-GPLv3-blue.svg?style=flat)](https://github.com/Anarios/return-youtube-dislike/blob/main/LICENSE) + +Leia isso em outros idiomas: [русский](READMEru.md), [Español](READMEes.md), [Nederlands](READMEnl.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md) ou [English (Para Melhor precisão!)](README.md) + + +# Return YouTube Dislike + + +

+ Return YouTube Dislike é uma extensão de codigo aberto que retorna com o contador de Deslike do Youtube. Agora está disponivel apenas para os proprietarios dos Canais
+ Disponivel para Chrome e Firefox como uma extensão Web.
+ e também disponivel para outros navegadores como um JS UserScript.

+ +

+ +## Nossa Historia + +Em 10 de novembro de 2021 a Google [Anuciou](https://blog.youtube/news-and-events/update-to-youtube/) que o contador de Deslikes do Youtube seria removido. + +Additionally, the `dislike` field in the YouTube API was [removed](https://support.google.com/youtube/thread/134791097/update-to-youtube-dislike-counts) on December 13th, 2021, removing any ability to judge the quality of content before watching. + +## Como isso funciona + +With the removal of dislike stats from the YouTube API, our backend switched to using a combination of scraped dislike stats, estimates extrapolated from extension user data. + +[FAQ](https://github.com/Anarios/return-youtube-dislike/blob/main/Docs/FAQ.md) + +## Why it Matters + +Você pode aprender mais no nosso site Aqui: [returnyoutubedislike.com](https://www.returnyoutubedislike.com/) + +## Documentação da API + +Third-party use of this open API is allowed with the following restrictions: + +- **Attribution**: This project should be clearly attributed with a link to [returnyoutubedislike.com](https://returnyoutubedislike.com/). +- **Rate Limiting**: There are per client rate limits in place of 100 per minute and 10,000 per day. This will return a _429_ status code indicating that your application should back off. + +The API is accessible over the following base URL: +https://returnyoutubedislikeapi.com + +List of available endpoints is available here: +https://returnyoutubedislikeapi.com/swagger/index.html + +### Obtendo votos + +Exemplo para obter os votos pelo Youtube Video ID: +`/votes?videoId=kxOuG8jMIgI` + +```json +{ + "id": "kxOuG8jMIgI", + "dateCreated": "2021-12-20T12:25:54.418014Z", + "likes": 27326, + "dislikes": 498153, + "rating": 1.212014408444885, + "viewCount": 3149885, + "deleted": false +} +``` + +Nenhum youtube id exstente irá retornar o codigo de status _404_ "Nada encontrado". +Wrong formed YouTube ID will return _400_ "Bad Request". + + + +## Contribuindo + +Por favor leia o [Guia de contribuição](https://github.com/Anarios/return-youtube-dislike/blob/main/CONTRIBUTINGpt_BR.md). + +## Ajude nosso projeto! + +Você pode ajuda esse projeto doando para nos no link abaixo: + +[Doar](https://returnyoutubedislike.com/donate) + +## Patrocinados + +[Seed4.Me VPN](https://www.seed4.me/users/register?gift=ReturnYoutubeDislike) + +[Torne-se nosso Patrocinador](https://www.patreon.com/join/returnyoutubedislike/checkout?rid=8008601) + + \ No newline at end of file diff --git a/Website/_locales/pt_BR.ts b/Website/_locales/pt_BR.ts new file mode 100644 index 00000000..fbf0f2e7 --- /dev/null +++ b/Website/_locales/pt_BR.ts @@ -0,0 +1,117 @@ +import { pt_BR } from "vuetify/src/locale"; +// by Unnamed-orbert +export default { + ...pt_BR, + home: { + name: "Inicio", + title: "Return YouTube Dislike", + subtitle: "Esta extensão de navegador usando a nossa APU irá mostra seus Deslikes no Youtube", + ukraine: "Ajuda a Ucrania", + sponsors: "Patrocinaores", + }, + install: { + name: "Instalação", + title: "Selecione sua plataforma", + subtitle: "Disponivel para Firefox e tidos navegadores Chromium", + title2: "Outras Plataformas", + subtitle2: "Se seu navegador não suportar isso, tente usa um UserScript", + title3: "Implementação de terceiro", + subtitle3: "Não nós garantimos com isso, use por sua conta e risco!", + }, + api: { + name: "API", + title: "Bem-vindo aos documentos oficiais de RYD!", + subtitle: "Para começar, selecione um seletor o menu.", + rights: { + title: "Direitos de uso", + subtitle: + "Third party use of this open API is allowed with the following restrictions:", + bullet1: "Attribution: ", + bullet1text: + "This project should be clearly attributed with either a link to this repo or a link to returnyoutubedislike.com", + bullet2: "Rate Limiting: ", + bullet2text: + "There are per client rate limits in place of 100 per minute and 10,000 per day. This will return a 429 status code indicating that your application should back off", + }, + url: { + title: "Informação da URL", + subtitle: "A API é acessivel seguindo o URL base: ", + }, + endpoints: { + title: "Available Endpoints", + subtitle: "List of available endpoints is available here: ", + }, + fetching: { + title: "Basic Fetching Tutorial", + subtitle: "Example to get votes of a given YouTube video ID: ", + title2: "Examplo de Requesitação : ", + url: "URL de requisitação: ", + method: "Metodo de solicitação: ", + headers: "Cabeçalhos: ", + response: "Resposta: ", + error1: 'Isso é um ID do youtube invalido retornando o codigo 404 "não encontrado"', + error2: 'Isso é um ID do youtube mal formatada retornando o codigo 400 "Solicitação ruim"', + }, + }, + help: { + name: "Ajuda", + title: "Troubleshooting", + bullet1: "Make sure you have latest version of extension installed, ", + bullet11: "right now", + bullet2: "Tente remover a extensão e instalar novamente, ou tente reiniciar o navegador", + bullet3: "Faça isso abrindo este link:", + bullet31: "you should see plain text: ", + bullet4: "Se não encontrou um ajuda - reporte seu problema no ", + bullet41: "na nossa", + bullet4a: "Diga-nós o seu sistema operacional, navegador e Versão do navegador", + bullet4b: + "Take a screenshot of the page with the problem (i.e. Youtube video page) with the console open (press ", + bullet4b1: ") - example screenshot below.", + bullet4c: + "Take a screenshot of the extensions page of your browser with the extension installed.", + bullet4c1: "Veja as extensões put essa into barra de endereço: ", + firefox: "para Firefox", + chrome: "para Chrome, Edge, Brave, Opera e Vivaldi", + }, + faq: { + name: "FAQ", + title: "Pergunta feitas com Frequencia", + subtitle: "Ainda tem perguntas? Sinta-se livre para nós acompanhar no Discord!", + bullet1: "Quais dados a extensão obtem Where does the extension get its data?", + bullet1text: + "A combination of archived data from before the official YouTube dislike API shut down, and extrapolated extension user behavior.", + bullet2: "Por que a contagem de deslike não está atualizando?", + bullet2text: + "Right now video dislikes are cached and they aren't updated very frequently. It varies depending on a video's popularity but can take anywhere between a few hours and a few days to update.", + bullet3: "Como isso funciona?", + bullet3text: + "The extension collects the video ID of the video you are watching, and fetches the number of dislikes (and other fields like views, likes etc) using our API. The extension then displays the dislike count and ratio on the page. If you like or dislike a video, that is recorded and sent to the database so an accurate dislike count can be extrapolated.", + bullet4: "Eu posso compartilha a contador de deslike com você?", + bullet4text: + "Coming soon. We are looking into using Oauth or a different read only API with a limited scope so creators can share their dislike counts verifiability.", + bullet5: "Quais os dados que vocs coletam para fazer isso funcionar?", + bullet5text: + 'A extensão apenas coleta os dados extritamente necessaria para o funcionamento proprietario, como o seu endereço de IP e ID do video que vocês atualmente assistindo. None of your data will ever be sold to 3rd parties. If you would like to know more about how we handle security and privacy check out our security FAQ.', + bullet6: "How does the API/Backend work?", + bullet6text: + "The backend is using archived data from when the youtube api was still returning the dislike count, extension users like/dislike count and extrapolation. In the near future we will be allowing content creators to submit their dislike count easily and safely and we will be adding ArchiveTeam's archived data (4.56 billion videos) into our current database. You can also view a video on the topic.", + bullet7: "Why does the dislike count show 'DISLIKES DISABLED'?", + bullet7text: + "Sometimes a recently uploaded video might show 'DISLIKES DISABLED' even if the creator hasn't disabled it, this is due to how we are detecting if dislikes are disabled, it should go away in a few hours or by liking or disliking the video and refreshing the page (hopefully).", + }, + donate: { + name: "Doe", + subtitle: + "Você pode nós ajuda a melhora sua experiencia na internet com uma doação!", + }, + links: { + name: "Links", + title: "Links de Projetos", + subtitle: "Links para o projeto e outros desenvolvedores", + contact: "Entre em Contato comigo (Only English, please!)", + translators: "Tradutores", + coolProjects: "Projetos de Qualidade", + sponsorBlockDescription: "Pule propagangas integradas nos videos", + filmotDescription: "Pesquise videos do YouTube pelas Legandas", + }, +}; diff --git a/Website/layouts/default.vue b/Website/layouts/default.vue index 318a27c7..49053dfd 100644 --- a/Website/layouts/default.vue +++ b/Website/layouts/default.vue @@ -102,6 +102,7 @@ export default { { name: "English", locale: "en" }, { name: "Español", locale: "es" }, { name: "Türkçe", locale: "tr" }, + { name: "Português (Brasil)", locale: "pt_BR" }, { name: "Русский", locale: "ru" }, { name: "Čeština", locale: "cs" }, { name: "日本語", locale: "ja" },