瀏覽代碼

translation dropdown toggle

Nikita Krupin 3 年之前
父節點
當前提交
4b5482be18

+ 138 - 0
Website/_locales/en.ts

@@ -0,0 +1,138 @@
+import { en } from 'vuetify/src/locale'
+
+export default {
+    ...en,
+    home: 'Home',
+    menu: {
+      install: 'Install',
+      api: 'API',
+      help: 'Help',
+      faq: 'FAQ',
+      donate: 'Donate',
+      links: 'Links',
+    },
+    home: {
+        title: 'Return YouTube Dislike',
+        subtitle: 'Browser extension and an API that shows you dislikes on Youtube',
+        install: 'Install',
+        supportUkraine: 'Support Ukraine',
+        sponsors: 'Sponsors',
+    },
+    install: {
+        title: 'Select Your Platform',
+        subtitle: 'Available for Firefox and all Chromium browsers',
+        "other-platforms": 'Other Platforms',
+    }
+
+// INSTALL
+
+// Select Your Platform > Elige tu plataforma
+// Available for Firefox and all Chromium browsers > Disponible para Firefox y todos los navegadores Chromium
+// Other Platforms > Otras plataformas
+// If your browser is not yet supported, try this UserScript > Si tu navegador aún no es compatible, usa este UserScript
+// Third Party Implementations > Implementaciones de terceros
+// No liability on our side, use at your own risk > No nos hacemos responsables, úsalas bajo tu propio riesgo
+
+// API
+
+// Welcome to the official RYD docs! > ¡Bienvenido a la documentación oficial de RYD!
+// To get started, select a section from the menu. > Para empezar, elige una sección del menú.
+
+// - USAGE RIGHTS > Derechos de uso (1)
+// - URL INFORMATION > Información de URL (2)
+// - AVAIABLE ENDPOINTS > Endpoints disponibles (3)
+// - BASIC FETCHING TUTORIAL > Tutorial de consulta básica (4)
+
+// (1)
+
+// Usage Rights > Derechos de uso
+// Third party use of this open API is allowed with the following restrictions > El uso de terceros de esta API abierta se permite bajo las siguientes restricciones
+// Attribution: > Atribución
+// This project should be clearly attributed with either a link to this repo or a link to returnyoutubedislike.com > El proyecto debe estar claramente atribuido con un link a esta página o a returnyoutubedislike.com
+// Rate Limiting > Límites de velocidad
+// There are per client rate limits in place of 100 per minute and 10'000 per day > Hay límites de velocidad por cliente de 100 por minuto y 10.000 por día
+// This will return a 429 status code indicating that your application should back off > Esto regresará un código de estado 409 indicando que tu aplicación debe bajar la velocidad.
+
+// (2)
+
+// URL Information > Información de URL
+// The API is accessible over the following base URL > Esta API es accesible sobre la siguiente URL base
+// https://returnyoutubedislikeapi.com
+
+// (3)
+
+// Available Endpoints > Endpoints disponibles
+// List of available endpoints is available here: > La lista de los endpoints disponibles está disponible aquí:
+// https://returnyoutubedislikeapi.com/swagger/index.html
+
+// (4)
+
+// Basic Fetching Tutorial > Tutorial de consulta básica
+// Example to get votes of a given YouTube video ID > Ejemplo para obtener los votos del ID de un vídeo de YouTube
+// Example Request: > Consulta de ejemplo:
+// Request URL > URL de la consulta
+// Request Method > Método de la consulta
+// Headers: > Encabezados:
+// Response: > Respuesta:
+// An invalid YouTube ID will return status code 404 "Not Found" > Un ID de YouTube inválido responderá con el código de estado 404 "Not Found"
+// An incorrectly formatted YouTube ID will return 400 "Bad Request" > Un ID de YouTube con mal formato responderá con 400 "Bad Request"
+
+// HELP
+
+// Troubleshooting > Solución de problemas
+// Make sure you have latest version of extension installed, """ right now > Asegúrate de que tienes la última versión de la extensión instalada, """ ahora mismo
+// Try removing extension and installing it again, then restarting the browser (all active windows, not just one tab) > Prueba a eliminar la extensión e instalarla de nuevo, después reinicia el navegador (todas las ventanas activas, no solo una pestaña)
+// Make sure that this link opens: > Asegúrate de qué este link se abre:
+// you should see plain text: > deberías ver este texto:
+// If nothing of above helps - report your problem in #bugs-and-problems in our Discord > Si nada de esto funciona, reporta tú problema en #bugs-and-problems en nuestro Discord (en inglés)
+// Tell us your Operating System, Browser Name and Browser Version > Dínos tu sistema operativo, nombre del navegador y versión del navegador
+// Take screenshot of page with problem (i.e. youtube video page) with console open (press F12) - example screenshot below. > Toma una captura de pantalla de la página con el problema (cómo una página de un vídeo de YouTube) con la consola abierta (pulsa F12) - captura de pantalla de ejemplo abajo.
+// Take screenshot of extensions page of your browser with extension installed. > Toma una captura de la página de extensiones de tu navegador con la extensión instalada.
+// To see extensions put this into address bar: > Para ver las extensiones pon esto en la barra de dirección:
+// about:addons for Firefox > about:addons para Firefox
+// chrome://extensions for Chrome, Edge, Brave, Opera, Vivaldi > chrome://extensions para Chrome, Edge, Brave, Opera, Vivaldi
+
+// FAQ
+
+// Frequently Asked Questions > Preguntas frecuentes
+// Still have questions? Feel free to join our Discord! > ¿Sígues teniendo problemas? ¡Sientete libre de unirte a nuestro Discord (en inglés)!
+
+// 1 - Where does the extension get its data? > ¿De dónde saca sus datos la extensión?
+// A combination of archived data from before the offical YouTube dislike API shut down, and extrapolated extension user behavior.
+// > Una combinación de datos archivados antes de que la API oficial de dislikes de YouTube se apagará, y datos estimados basados en los usuarios.
+
+// 2- Why isn't the dislike count updating? > ¿Por qué no se actualiza el contador de dislikes?
+// 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.
+// > Ahora mismo los dislikes son guardados y no se actualizan muy frecuentemente. Varia dependiendo de la popularidad de un vídeo pero puede tardar entre unas pocas horas y unos pocos días en actualizarse.
+
+// 3 - How does this work? > ¿Cómo funciona esto?
+// 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. 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.
+// > La extensión recoge el ID del vídeo qué estas viendo, carga los dislikes (y otros campos cómo las visitas, likes, etc) usando nuestra API. Entonces, la extensión muestra los dislikes y el radio en la página. Si le das like o dislike a un vídeo, eso se guarda y se envía a la base de datos para qué un contador de dislikes más acertado pueda ser creado.
+
+// 4- Can I share my dislike count with you? > ¿Puedo compartir mi contador de dislikes con vosotros?
+// 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.
+// > Próximamente. Estamos investigando en usar Oauth o una API diferente de solo lectura con alcance limitado para que los creadores puedan compartir sus contadores de dislikes verificablemente.
+
+// 5- What data do you collect and how is it treated? > ¿Qué datos guardais y cómo son guardados?
+// The extension only collects data that is strictly necessary for it to function properly, such as IP address or ID of the video you're watching. 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 """.
+// > La extensión solo guarda datos que son estrictamente necesarios para que funcione correctamente, cómo la dirección IP o el ID del vídeo que estas viendo. Tus datos nunca serán vendidos a terceros. Si te gustaría saber más sobre cómo tratamos la seguridad y la privacidad mira nuestra """.
+
+// 6 - How does the API/Backend work? > ¿Cómo funciona la API/Backend?
+// The backend is using archived data from when the youtube api was still returning the dislike count, extension users like/discount 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.
+// > El backend usa datos archivados de cuando la API de YouTube seguía proporcionando el contador de dislikes, los votos de usuarios de la extensión y extrapolación. En un futuro cercano permitíremos a los creadores de contenido proporcionar su contador de dislikes de forma fácil y segura y añadíremos datos archivados de ArchiveTeam (4,56 billones de vídeos) en nuestra base de datos. También puedes ver un vídeo al respecto.
+
+// 7- Why does the dislike count show 'DISLIKES DISABLED'? > ¿Porque el contador de dislikes dice "DISLIKES DISABLED"?
+// At the time of writing we aren't showing dislikes for videos that disabled their likes and dislikes count. The extension displays 'DISLIKES DISABLED' for these videos. We will be showing dislikes on all videos soon, this is just a temporary workaround so people don't think the extension is broken (which isn't working well). 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).
+// > En el momento de escribir este artículo, no mostramos los dislikes de los vídeos que tienen desactivado el recuento de likes y dislikes. La extensión muestra "DISLIKES DISABLED" para estos vídeos. Pronto mostraremos los dislikes en todos los vídeos, pero se trata de una solución temporal para que la gente no piense que la extensión está rota (que no funciona bien). A veces, un vídeo subido recientemente puede mostrar "DISLIKES DISABLED" incluso si el creador no lo ha desactivado, esto se debe a la forma en que detectamos si los "dislikes" están desactivados, debería desaparecer en unas horas o al darle like o dislike al vídeo y actualizar la página (con suerte).
+
+// DONATE
+
+// Donate > Donar
+// You can support our efforts to keep the internet free with a donation! > ¡Puedes apoyar nuestros esfuerzos de mantener el internet libre con una donación!
+
+// LINKS
+
+// Project Links > Links del proyecto
+// Links to the project and its developers > Links al proyecto y sus desarrolladores
+// Contact Me > Contactame
+}

+ 1 - 0
Website/_locales/es.ts

@@ -0,0 +1 @@
+// BY ALEJANDRO GAYOL

+ 1 - 0
Website/_locales/ru.ts

@@ -0,0 +1 @@
+// BY NIKITA KRUPIN

+ 1 - 0
Website/_locales/tr.ts

@@ -0,0 +1 @@
+// BY BATUHAN KARA

+ 132 - 0
Website/_locales/translation-tr.txt

@@ -0,0 +1,132 @@
+TRANSLATION OF RYD WEBSITE TO TURKISH - BY BATUHAN KARA
+If something doesn't appear translated, it's the same in English and Turkish.
+
+MENU 
+
+Home > Ana Sayfa
+Install > Yükle
+API > API
+Help > Yardım
+FAQ > SSS
+Donate > Bağış yap
+Links > Bağlantılar
+
+HOME 
+
+Return YouTube Dislike > YouTube Beğenmeme Sayısını Gör
+Browser extension and an API that shows you dislikes on Youtube > YouTube'da beğenmeme sayılarını gösteren tarayıcı uzantısı ve API
+Install > Yükle
+Support Ukraine > Ukrayna'ya Destek Ol
+Sponsors > Sponsorlar
+
+INSTALL 
+
+Select Your Platform > Platformunuzu Seçin
+Available for Firefox and all Chromium browsers > Firefox ve bütün Chromium tarayıcılarda kullanılabilir
+Other Platforms > Diğer Platformlar
+If your browser is not yet supported, try this UserScript > Tarayıcınız henüz desteklenmiyorsa, UserScript yöntemini deneyin
+Third Party Implementations > Üçüncü Parti Uygulamaları
+No liability on our side, use at your own risk > Riski tamamen size aittir, bizim tarafımızda sorumluluk kabul edilmemektedir
+
+API 
+
+Welcome to the official RYD docs! > Resmi RYD belgelerine hoş geldiniz!
+To get started, select a section from the menu. > Başlamak için, menüden bir bölüm seçin.
+
+- USAGE RIGHTS > KULLANIM HAKLARI (1)
+- URL INFORMATION > URL BİLGİSİ (2)
+- AVAIABLE ENDPOINTS > KULLANILABİLİR ENDPOINTS'LER (3)
+- BASIC FETCHING TUTORIAL > TEMEL FETCHING ÖĞRETİCİ (4)
+
+(1) 
+
+Usage Rights > Kullanım Hakları
+**Third party use of this open API is allowed with the following restrictions > Herkese açık API'nin üçüncü parti kişilerin kullanımında aşağıdaki kısıtlamalara izin verir
+Attribution: > Atıf:
+This project should be clearly attributed with either a link to this repo or a link to returnyoutubedislike.com > Bu proje bu depo(repo)'ya bir bağlantı ile ya da returnyoutubedislike.com'a bağlantı olarak açıkça ilişkilendirilmelidir
+Rate Limiting > Oranı Sınırlama
+There are per client rate limits in place of 100 per minute and 10'000 per day > Dakikada 100 ve günde 10.000 müşteri başına oranı sınırlama vardır
+This will return a 429 status code indicating that your application should back off > Uygulamınızın geri çekmesi gerektiğini belirten bir 429 durum kodu döndürür.
+
+(2) 
+
+URL Information > URL Bilgisi
+The API is accessible over the following base URL > API'ye bu URL üzerinden ulaşılabilir
+https://returnyoutubedislikeapi.com
+
+(3) 
+
+Available Endpoints > Kullanılabilir Endpoint'ler
+List of available endpoints is available here: > Kullanılabilir endpointlerin listesi burada mevcuttur:
+https://returnyoutubedislikeapi.com/swagger/index.html
+
+(4) 
+
+Basic Fetching Tutorial > Temel Fetching Öğretici
+Example to get votes of a given YouTube video ID > Belirli bir YouTube ID kimliğinin oylarını almak için örnek
+Example Request: > Örnek İstek:
+Request URL > İstek URL
+Request Method > İstek Yöntemi
+Headers: > Başlık:
+Response: > Sonuç:
+An invalid YouTube ID will return status code 404 "Not Found" > Geçersiz bir YouTube ID kimliği 404 "Bulunamadı" olarak döner.
+An incorrectly formatted YouTube ID will return 400 "Bad Request" > Yanlış biçimlendirilmeş bir YouTube ID kimliği 400 "Geçersiz İstek" olarak döner.
+
+HELP 
+
+Troubleshooting > Sorunu Giderin
+Make sure you have latest version of extension installed, """ right now > Uzantının en son sürümünün kurulu olduğundan emin olun, şu anki sürüm """
+Try removing extension and installing it again, then restarting the browser (all active windows, not just one tab) > Uzantıyı kaldırp yeniden yüklemeyi deneyin, sonra tarayıcınızı yeniden başlatın(tüm aktif sekmeler, sadece tek sekme değil).
+Make sure that this link opens: > Bu bağlantıyı açtığınızdan emin olun:
+you should see plain text: > şöyle düz metin göreceksiniz:
+If nothing of above helps - report your problem in #bugs-and-problems in our Discord > Yukarıdakiler yardımcı olmadıysa, Discord #bugs-and-problems kanalında raporu bildirin (İngilizce)
+Tell us your Operating System, Browser Name and Browser Version > Bize İşletim sistemini, tarayıcı adını ve tarayıcı sürümünü söyleyin
+Take screenshot of page with problem (i.e. youtube video page) with console open (press F12) - example screenshot below. > Konsol açıkken (F12'ye basın) sorunu yaşadığınız sayfanın ekran görüntüsünü alın (yani YouTube izleme sayfası) - Ekran görüntüsü örneği aşağıdadır.
+Take screenshot of extensions page of your browser with extension installed. > Uzantı yüklüyken tarayıcınızın uzantılar sayfasının ekran görüntüsünü alın.
+To see extensions put this into address bar: > Uzantıları görmek için bunu adres çubuğuna kopyalayın.
+about:addons for Firefox > Firefox için about:addons
+chrome://extensions for Chrome, Edge, Brave, Opera, Vivaldi > Chrome, Edge, Brave, Opera ve Vivaldi için chrome://extensions 
+
+FAQ
+
+Frequently Asked Questions > Sıkça Sorulan Sorular
+Still have questions? Feel free to join our Discord! > Hala sorularınız mı var? Discordumuza katılmaktan çekinmeyin(İngilizce)!
+
+1 - Where does the extension get its data? > Uzantı verilerini nereden alıyor?
+A combination of archived data from before the offical YouTube dislike API shut down, and extrapolated extension user behavior.
+> Resmi YouTube beğenmeme sayısı API'si kapatılmadan önceki arşivlenmiş verilerden ve uzantının kullanıcının davranışlarıyla tahmin eder.
+
+2- Why isn't the dislike count updating? > Beğenmeme sayısı neden güncellenmiyor?
+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.
+> Şu anda beğenmeme durumları önbelleğe alınır ve çok sık güncellenmez. Bir videonun popülerliğine göre değişir ancak güncellenmesi birkaç saat ile birkaç gün arasında sürebilir.
+
+3 - How does this work? > Nasıl Çalışır?
+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. 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.
+> Uzantı izlediğiniz videonun kimliğini toplar, API'mizi kullanarak beğenmediğinizi (ve görüntülenme, beğeni vb.) getirir. Uzantı daha sonra sayfada beğenmeme sayısını ve oranını görüntüler. Bir videoyu beğenirseniz veya beğenmezseniz kaydedilir ve veri tabanına gönderilir, böylece doğru beğenmeme sayısını tahmin edebilir.
+
+4- Can I share my dislike count with you? > Beğenmeme sayımı sizinle paylaşabilirmiyim?
+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.
+> Çok yakında. İçerik üreticilerin beğenmeme sayıları doğrulanabilirliğini paylaşabilmeleri için Oauth ya da sınırlı kapsamda farklı salt okunur API kullanmayı düşünüyoruz.
+
+5- What data do you collect and how is it treated? > Hangi verileri topluyorsunuz ve bunlar nasıl işleniyor?
+The extension only collects data that is strictly necessary for it to function properly, such as IP address or ID of the video you're watching. 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 """.
+>  Uzantı yalnızca izlediğiniz videonun IP adresi veya videonun ID'si gibi düzgün çalışması için, kesinlikle gerekli olan verileri toplar. Verileriniz asla 3. şahıslara satılmayacaktır. Güvenliği ve gizliliği nasıl ele aldığımız hakkında daha fazla bilgi için """ adresine gidin.
+
+6 - How does the API/Backend work? > API/Arka uç(Backend) nasıl çalışıyor?
+The backend is using archived data from when the youtube api was still returning the dislike count, extension users like/discount 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.
+> Arka uç(backend) YouTube API'nin beğenmeme sayısını ve uzantı kullanıcılarının beğenme/beğenmeme sayısı sonuçların genişletilmesinin döndürmeye devam ettiği zamana ait arşivlenmiş verileri kullanır. Yakın zamanda içerik üreticilerin beğenmeme sayısını kolay ve güvenli bir şekilde göndermelerine izin vereceğiz ve ArchiveTeam'in arşivlenmiş verilerini (4.56 milyar video) veritabanımıza ekleyeceğiz. Konu ile ilgili videoyu izleyebilirsiniz.
+
+7- Why does the dislike count show 'DISLIKES DISABLED'? > Beğenmeme sayısı neden 'DISLIKES DISABLED' olarak gözüküyor?
+At the time of writing we aren't showing dislikes for videos that disabled their likes and dislikes count. The extension displays 'DISLIKES DISABLED' for these videos. We will be showing dislikes on all videos soon, this is just a temporary workaround so people don't think the extension is broken (which isn't working well). 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).
+> Yazma sırasında beğeni ve beğenmeme sayısını devre dışı bırakan videoların beğenmeme sayılarını göstermiyoruz. Uzantı, bu videolar için 'DISLIKES DISABLED' mesajını görüntüler. Yakında tüm videolarda beğenmeme sayısını göstereceğiz, bu yanlızca geçici çözümdür, bu nedenle insanlar uzantının bozuk olduğunu düşünmez(zaten iyi çalışmıyor). Bazen yakın zamanda yüklenen bir videoda, içerik üreticisi onu devre dışı bırakmamış olsa bile 'DISLIKES DISABLED' olarak gözükebilir. Bunun nedeni, beğenmeme sayısını devre dışı bırakıp bırakmadığını tespit etmemizdir. Birkaç saat içinde videoyu beğenerek ya da beğenmeyerek veya sayfayı yenileyerek(umarım) kaybolması gerekir.
+
+DONATE 
+
+Donate > Bağış Yap
+You can support our efforts to keep the internet free with a donation! > İnterneti özgür bırakma çabalarımızla bize bir bağışla destekleyebilirsiniz!
+
+LINKS 
+
+Project Links > Projeler için Bağlantılar
+Links to the project and its developers > Proje ve geliştiriciler için bağlantılar
+Contact Me > Bana Ulaş

+ 132 - 0
Website/_locales/translation.txt

@@ -0,0 +1,132 @@
+TRANSLATION OF RYD WEBSITE TO SPANISH - BY ALEJANDRO GAYOL
+If something doesn't appear translated, it's the same in English and Spanish.
+
+MENU
+
+Home > Inicio
+Install > Instalar
+API > API
+Help > Ayuda
+FAQ > FAQ
+Donate > Donar
+Links > Enlaces
+
+HOME
+
+Return YouTube Dislike > Regresar los Dislikes de YouTube
+Browser extension and an API that shows you dislikes on Youtube > Una extensión de navegador y una API que te muestra los dislikes en YouTube
+Install > Instalar
+Support Ukraine > Apoya a Ucrania
+Sponsors > Patrocinadores
+
+INSTALL
+
+Select Your Platform > Elige tu plataforma
+Available for Firefox and all Chromium browsers > Disponible para Firefox y todos los navegadores Chromium
+Other Platforms > Otras plataformas
+If your browser is not yet supported, try this UserScript > Si tu navegador aún no es compatible, usa este UserScript
+Third Party Implementations > Implementaciones de terceros
+No liability on our side, use at your own risk > No nos hacemos responsables, úsalas bajo tu propio riesgo
+
+API
+
+Welcome to the official RYD docs! > ¡Bienvenido a la documentación oficial de RYD!
+To get started, select a section from the menu. > Para empezar, elige una sección del menú.
+
+- USAGE RIGHTS > Derechos de uso (1)
+- URL INFORMATION > Información de URL (2)
+- AVAIABLE ENDPOINTS > Endpoints disponibles (3)
+- BASIC FETCHING TUTORIAL > Tutorial de consulta básica (4)
+
+(1)
+
+Usage Rights > Derechos de uso
+Third party use of this open API is allowed with the following restrictions > El uso de terceros de esta API abierta se permite bajo las siguientes restricciones
+Attribution: > Atribución
+This project should be clearly attributed with either a link to this repo or a link to returnyoutubedislike.com > El proyecto debe estar claramente atribuido con un link a esta página o a returnyoutubedislike.com
+Rate Limiting > Límites de velocidad
+There are per client rate limits in place of 100 per minute and 10'000 per day > Hay límites de velocidad por cliente de 100 por minuto y 10.000 por día
+This will return a 429 status code indicating that your application should back off > Esto regresará un código de estado 409 indicando que tu aplicación debe bajar la velocidad.
+
+(2)
+
+URL Information > Información de URL
+The API is accessible over the following base URL > Esta API es accesible sobre la siguiente URL base
+https://returnyoutubedislikeapi.com
+
+(3)
+
+Available Endpoints > Endpoints disponibles
+List of available endpoints is available here: > La lista de los endpoints disponibles está disponible aquí:
+https://returnyoutubedislikeapi.com/swagger/index.html
+
+(4)
+
+Basic Fetching Tutorial > Tutorial de consulta básica
+Example to get votes of a given YouTube video ID > Ejemplo para obtener los votos del ID de un vídeo de YouTube
+Example Request: > Consulta de ejemplo:
+Request URL > URL de la consulta
+Request Method > Método de la consulta
+Headers: > Encabezados:
+Response: > Respuesta:
+An invalid YouTube ID will return status code 404 "Not Found" > Un ID de YouTube inválido responderá con el código de estado 404 "Not Found"
+An incorrectly formatted YouTube ID will return 400 "Bad Request" > Un ID de YouTube con mal formato responderá con 400 "Bad Request"
+
+HELP
+
+Troubleshooting > Solución de problemas
+Make sure you have latest version of extension installed, """ right now > Asegúrate de que tienes la última versión de la extensión instalada, """ ahora mismo
+Try removing extension and installing it again, then restarting the browser (all active windows, not just one tab) > Prueba a eliminar la extensión e instalarla de nuevo, después reinicia el navegador (todas las ventanas activas, no solo una pestaña)
+Make sure that this link opens: > Asegúrate de qué este link se abre:
+you should see plain text: > deberías ver este texto:
+If nothing of above helps - report your problem in #bugs-and-problems in our Discord > Si nada de esto funciona, reporta tú problema en #bugs-and-problems en nuestro Discord (en inglés)
+Tell us your Operating System, Browser Name and Browser Version > Dínos tu sistema operativo, nombre del navegador y versión del navegador
+Take screenshot of page with problem (i.e. youtube video page) with console open (press F12) - example screenshot below. > Toma una captura de pantalla de la página con el problema (cómo una página de un vídeo de YouTube) con la consola abierta (pulsa F12) - captura de pantalla de ejemplo abajo.
+Take screenshot of extensions page of your browser with extension installed. > Toma una captura de la página de extensiones de tu navegador con la extensión instalada.
+To see extensions put this into address bar: > Para ver las extensiones pon esto en la barra de dirección:
+about:addons for Firefox > about:addons para Firefox
+chrome://extensions for Chrome, Edge, Brave, Opera, Vivaldi > chrome://extensions para Chrome, Edge, Brave, Opera, Vivaldi
+
+FAQ
+
+Frequently Asked Questions > Preguntas frecuentes
+Still have questions? Feel free to join our Discord! > ¿Sígues teniendo problemas? ¡Sientete libre de unirte a nuestro Discord (en inglés)!
+
+1 - Where does the extension get its data? > ¿De dónde saca sus datos la extensión?
+A combination of archived data from before the offical YouTube dislike API shut down, and extrapolated extension user behavior.
+> Una combinación de datos archivados antes de que la API oficial de dislikes de YouTube se apagará, y datos estimados basados en los usuarios.
+
+2- Why isn't the dislike count updating? > ¿Por qué no se actualiza el contador de dislikes?
+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.
+> Ahora mismo los dislikes son guardados y no se actualizan muy frecuentemente. Varia dependiendo de la popularidad de un vídeo pero puede tardar entre unas pocas horas y unos pocos días en actualizarse.
+
+3 - How does this work? > ¿Cómo funciona esto?
+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. 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.
+> La extensión recoge el ID del vídeo qué estas viendo, carga los dislikes (y otros campos cómo las visitas, likes, etc) usando nuestra API. Entonces, la extensión muestra los dislikes y el radio en la página. Si le das like o dislike a un vídeo, eso se guarda y se envía a la base de datos para qué un contador de dislikes más acertado pueda ser creado.
+
+4- Can I share my dislike count with you? > ¿Puedo compartir mi contador de dislikes con vosotros?
+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.
+> Próximamente. Estamos investigando en usar Oauth o una API diferente de solo lectura con alcance limitado para que los creadores puedan compartir sus contadores de dislikes verificablemente.
+
+5- What data do you collect and how is it treated? > ¿Qué datos guardais y cómo son guardados?
+The extension only collects data that is strictly necessary for it to function properly, such as IP address or ID of the video you're watching. 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 """.
+> La extensión solo guarda datos que son estrictamente necesarios para que funcione correctamente, cómo la dirección IP o el ID del vídeo que estas viendo. Tus datos nunca serán vendidos a terceros. Si te gustaría saber más sobre cómo tratamos la seguridad y la privacidad mira nuestra """.
+
+6 - How does the API/Backend work? > ¿Cómo funciona la API/Backend?
+The backend is using archived data from when the youtube api was still returning the dislike count, extension users like/discount 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.
+> El backend usa datos archivados de cuando la API de YouTube seguía proporcionando el contador de dislikes, los votos de usuarios de la extensión y extrapolación. En un futuro cercano permitíremos a los creadores de contenido proporcionar su contador de dislikes de forma fácil y segura y añadíremos datos archivados de ArchiveTeam (4,56 billones de vídeos) en nuestra base de datos. También puedes ver un vídeo al respecto.
+
+7- Why does the dislike count show 'DISLIKES DISABLED'? > ¿Porque el contador de dislikes dice "DISLIKES DISABLED"?
+At the time of writing we aren't showing dislikes for videos that disabled their likes and dislikes count. The extension displays 'DISLIKES DISABLED' for these videos. We will be showing dislikes on all videos soon, this is just a temporary workaround so people don't think the extension is broken (which isn't working well). 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).
+> En el momento de escribir este artículo, no mostramos los dislikes de los vídeos que tienen desactivado el recuento de likes y dislikes. La extensión muestra "DISLIKES DISABLED" para estos vídeos. Pronto mostraremos los dislikes en todos los vídeos, pero se trata de una solución temporal para que la gente no piense que la extensión está rota (que no funciona bien). A veces, un vídeo subido recientemente puede mostrar "DISLIKES DISABLED" incluso si el creador no lo ha desactivado, esto se debe a la forma en que detectamos si los "dislikes" están desactivados, debería desaparecer en unas horas o al darle like o dislike al vídeo y actualizar la página (con suerte).
+
+DONATE
+
+Donate > Donar
+You can support our efforts to keep the internet free with a donation! > ¡Puedes apoyar nuestros esfuerzos de mantener el internet libre con una donación!
+
+LINKS
+
+Project Links > Links del proyecto
+Links to the project and its developers > Links al proyecto y sus desarrolladores
+Contact Me > Contactame

+ 65 - 7
Website/layouts/default.vue

@@ -1,7 +1,11 @@
 <template>
   <v-app dark>
     <!-- height = 4rem, margin-y = 1rem -->
-    <v-app-bar app text class="topBar fly-in-from-top my-4 mx-auto">
+    <v-app-bar
+      app
+      class="topBar glass elevation-0 fly-in-from-top my-4 mx-auto"
+    >
+      <!-- Translator desktop -->
       <v-tabs centered center-active color="primary" router show-arrows>
         <v-tab v-for="link in links" :key="link.path" :to="link.path">
           {{ link.name }}
@@ -12,7 +16,7 @@
     <!-- abstract background -->
     <v-img
       src="/ui/abstract.svg"
-      style="position: absolute; left: 0; right: 0; width: 100vw; height: 100vh"
+      style="position: fixed; left: 0; right: 0; width: 100vw; height: 100vh"
     />
 
     <v-main style="padding-top: 4rem !important">
@@ -25,6 +29,46 @@
       </center>
     </v-main>
 
+    <!-- Translator mobile -->
+    <v-menu
+      top
+      left
+      offset-y
+      rounded="lg"
+      nudge-top="16"
+      class="d-flex flex-column"
+      transition="slide-y-reverse-transition"
+    >
+      <template v-slot:activator="{ on, attrs }">
+        <v-btn
+          text
+          fab
+          class="glass"
+          style="
+            border-radius: 1rem !important;
+            position: fixed;
+            bottom: 2rem;
+            right: 1rem;
+          "
+          v-bind="attrs"
+          v-on="on"
+        >
+          <v-icon>mdi-translate</v-icon>
+        </v-btn>
+      </template>
+      <v-list class="py-0">
+        <v-list-item
+          v-for="(lang, index) in langs"
+          :key="index"
+          link
+          :class="$vuetify.lang.current === lang.locale ? 'primary--text' : ''"
+          @click="$vuetify.lang.current = lang.locale"
+        >
+          <v-list-item-title v-text="lang.name"></v-list-item-title>
+        </v-list-item>
+      </v-list>
+    </v-menu>
+
     <!--   Debugger Notification   -->
     <v-snackbar
       v-model="alert.show"
@@ -66,12 +110,25 @@ export default {
       { name: "Donate", path: "/donate" },
       { name: "Links", path: "/links" },
     ],
+    langs: [
+      { name: "English", locale: "en" },
+      { name: "Español", locale: "es" },
+      { name: "Türkçe", locale: "tr" },
+      { name: "Русский", locale: "ru" },
+      // { name: "Français", locale: "fr" },
+      // { name: "Deutsch", locale: "de" },
+      // { name: "日本語" },
+    ],
     alert: {
       show: false,
       html: "",
     },
   }),
   mounted() {
+    if (process.client && navigator.language) {
+      this.$vuetify.lang.current = navigator.language.slice(0, 2);
+    }
+    console.log(this.$vuetify.lang);
     setTimeout(() => {
       // Chrome < 70 or FF < 60
       if (
@@ -147,12 +204,13 @@ body {
 .topBar {
   padding: 0 3rem;
   width: fit-content !important;
-  backdrop-filter: blur(16px) saturate(180%);
-  -webkit-backdrop-filter: blur(16px) saturate(180%);
-  background: rgba(42, 42, 42, 0.75) !important;
   border-radius: 1rem !important;
-  /* border: 1px solid #222; */
-  overflow: hidden;
+  /* overflow: hidden; */
+}
+.glass {
+  backdrop-filter: blur(16px) saturate(200%);
+  -webkit-backdrop-filter: blur(16px) saturate(200%);
+  background: rgba(42, 42, 42, 0.75) !important;
 }
 
 /* used in docs.vue */

+ 8 - 0
Website/nuxt.config.js

@@ -1,3 +1,7 @@
+import en from "./_locales/en";
+import es from "./_locales/es";
+import tr from "./_locales/tr";
+import ru from "./_locales/ru";
 export default {
   // Global page headers: https://go.nuxtjs.dev/config-head
   head: {
@@ -40,6 +44,10 @@ export default {
 
   // Vuetify module configuration: https://go.nuxtjs.dev/config-vuetify
   vuetify: {
+    lang: {
+      locales: { en, es, tr, ru },
+      current: "en",
+    },
     theme: {
       dark: true,
       themes: {

+ 1 - 1
Website/pages/docs.vue

@@ -40,7 +40,7 @@
         height: max-content;
         max-width: 90vw !important;
         background-color: #222;
-        border-radius: 0.75rem;
+        border-radius: 1rem;
       "
     >
       <NuxtChild />

+ 1 - 1
Website/pages/install.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <h1 class="title-text">Select Your Platform</h1>
+    <h1 class="title-text">{{ $vuetify.lang.t("$vuetify.install.title") }}</h1>
 
     <div style="color: #999">
       <p style="margin-bottom: 1rem">