From 36104b73ca17d74b307f40da5a76a3cefd4079ec Mon Sep 17 00:00:00 2001 From: ReVanced Bot Date: Mon, 23 Sep 2024 19:05:51 +0200 Subject: [PATCH 01/24] chore: Sync translations (#3679) --- .../addresources/values-ar-rSA/strings.xml | 6 +- .../addresources/values-az-rAZ/strings.xml | 28 +-- .../addresources/values-cs-rCZ/strings.xml | 6 +- .../addresources/values-da-rDK/strings.xml | 6 +- .../addresources/values-de-rDE/strings.xml | 5 +- .../addresources/values-el-rGR/strings.xml | 6 +- .../addresources/values-es-rES/strings.xml | 43 ++-- .../addresources/values-fi-rFI/strings.xml | 6 +- .../addresources/values-fr-rFR/strings.xml | 6 +- .../addresources/values-ga-rIE/strings.xml | 13 ++ .../addresources/values-in-rID/strings.xml | 28 +-- .../addresources/values-it-rIT/strings.xml | 6 +- .../addresources/values-ja-rJP/strings.xml | 12 +- .../addresources/values-ko-rKR/strings.xml | 12 +- .../addresources/values-nb-rNO/strings.xml | 6 +- .../addresources/values-nl-rNL/strings.xml | 6 +- .../addresources/values-pl-rPL/strings.xml | 6 +- .../addresources/values-pt-rBR/strings.xml | 38 +++- .../addresources/values-pt-rPT/strings.xml | 6 +- .../addresources/values-ro-rRO/strings.xml | 6 +- .../addresources/values-ru-rRU/strings.xml | 17 +- .../addresources/values-sr-rCS/strings.xml | 200 +++++++++-------- .../addresources/values-sr-rSP/strings.xml | 206 +++++++++--------- .../addresources/values-sv-rSE/strings.xml | 6 +- .../addresources/values-tr-rTR/strings.xml | 6 +- .../addresources/values-uk-rUA/strings.xml | 12 +- .../addresources/values-vi-rVN/strings.xml | 15 ++ .../addresources/values-zh-rCN/strings.xml | 5 +- .../addresources/values-zh-rTW/strings.xml | 37 +++- 29 files changed, 403 insertions(+), 352 deletions(-) diff --git a/src/main/resources/addresources/values-ar-rSA/strings.xml b/src/main/resources/addresources/values-ar-rSA/strings.xml index 78736c64b..28fc89111 100644 --- a/src/main/resources/addresources/values-ar-rSA/strings.xml +++ b/src/main/resources/addresources/values-ar-rSA/strings.xml @@ -1139,16 +1139,16 @@ This is because Crowdin requires temporarily flattening this file and removing t يتم تزييف تدفقات الفيديو لا يتم تزييف تدفقات الفيديو\n\nقد لا يعمل تشغيل الفيديو إيقاف تشغيل هذا الإعداد قد يسبب مشاكل في تشغيل الفيديو. - العميل الافتراضي + العميل الافتراضي فرض AVC (H.264) ترميز الفيديو هو AVC (H.264) ترميز الفيديو هو VP9 أو AV1 لا يحتوي جهازك على فك تشفير الأجهزة VP9، وهذا الإعداد يعمل دائما عند تمكين تزييف العميل قد يؤدي تمكين هذا إلى تحسين عمر البطارية وإصلاح مشكلة تقطيع التشغيل.\n\nيتمتع تنسيق AVC بدقة قصوى تبلغ 1080P، وسيستخدم تشغيل الفيديو المزيد من بيانات الإنترنت مقارنةً بتنسيق VP9 أو AV1. التأثيرات الجانبية لمحاكاة iOS - • قد لا يتم تشغيل الأفلام أو الفيديوهات المدفوعة\n• يبدأ البث المباشر من البداية + • قد لا يتم تشغيل الأفلام أو الفيديوهات المدفوعة\n• تبدأ البثوث المباشرة من البداية\n• قد تنتهي الفيديوهات قبل النهاية بثانية واحدة\n• لا يوجد ترميز الصوت Opus التأثيرات الجانبية لمحاكاة Android VR - • قائمة المقطع الصوتي مفقودة + • قائمة المقطع الصوتي مفقودة\n• مستوى الصوت الثابت غير متوفر diff --git a/src/main/resources/addresources/values-az-rAZ/strings.xml b/src/main/resources/addresources/values-az-rAZ/strings.xml index e4c1e8745..94d0a79d7 100644 --- a/src/main/resources/addresources/values-az-rAZ/strings.xml +++ b/src/main/resources/addresources/values-az-rAZ/strings.xml @@ -1133,22 +1133,22 @@ This is because Crowdin requires temporarily flattening this file and removing t Axtarmaq üçün sürüşdürmə aktiv deyil - Video yayımları təqlid et - Oxutma problemlərini önləmək üçün client video yayımlarını təqlid et - Video yayımları təqlid et - Video yayımları təqlid edilir - Video yayımları təqlid edilmir\n\nVideo oxutma işləməyə bilər - Bu ayarı söndürmək, video oxutma problemlərinə səbəb ola bilər. - İlkin client + Video yayımları saxtalaşdır + Oynatma problemlərin önləmək üçün qəbuledici video yayımların saxtalaşdır + Video yayımları saxtalaşdır + Video yayımları saxtalaşdırılır + Video yayımları saxtalaşmır\n\nVideo oynatma işləməyə bilər + Bu seçimi bağlamaq, video oynatma problemlərinə səbəb olar. + İlkin qəbuledici Məcburi AVC (H.264) Video kodlaşdırma: AVC (H.264) - Video kodlaşdırma: VP9 və ya AV1 - Cihazınızda VP9 hardware decoding yoxdur və bu ayar, \"Client təqlid etmə\" fəal olduqda həmişə açıqdır - Bunu fəallaşdırmaq, batareya ömrünü uzada və oxutmadakı ilişmələri düzəldə bilər.\n\nAVC, maksimum 1080p dəqiqliyinə sahibdir və video oxutma, VP9 və ya AV1-ə görə daha çox internet datası istifadə edəcək. - iOS təqlidinin yan təsirləri - • Filmlər və ya ödənişli videolar oxudulmaya bilər\n• Canlı yayımlar başdan başlayır - Android VR təqlidinin yan təsirləri - • Səs trek menyusu əskikdir + Video kodlaşdırma / VP9 və ya AV1 + Cihazınızın VP9 hardware decoding\'i yoxdur və bu seçim, \"Qəbuledicini saxtalaşdırma\" aktivləşdikdə həmişəlikdir + Bunu aktivləşdirmə batareya ömrünü yaxşılaşdıra və oynatma donmasını düzəldə bilər.\n\nAVC maksimum 1080p görüntü imkanına malikdir və video oynadılması VP9 və ya AV1-dən daha çox internet məlumatı istifadə edəcək. + iOS saxtakarlığı yan təsirləri + • Filmlər və ya ödənişli videolar oynadılmaya bilər\n• Canlı yayımlar əvvəldən başlayır\n• Videolar 1 saniyə tez bitə bilər\n• Opus səs kodlama yoxdur + Android VR saxtakarlığı yan təsirləri + • Səs axını menyusu əskikdir\n• Stabil səs səviyyəsi əlçatan deyil diff --git a/src/main/resources/addresources/values-cs-rCZ/strings.xml b/src/main/resources/addresources/values-cs-rCZ/strings.xml index bd08e97de..f4a1b5e3b 100644 --- a/src/main/resources/addresources/values-cs-rCZ/strings.xml +++ b/src/main/resources/addresources/values-cs-rCZ/strings.xml @@ -1141,16 +1141,16 @@ This is because Crowdin requires temporarily flattening this file and removing t Video streamy jsou falešné Video streamy nejsou falešné\n\nPřehrávání videa nemusí fungovat Vypnutí tohoto nastavení může způsobit problémy při přehrávání videa. - Výchozí klient + Výchozí klient Síla AVC (H.264) Video kodek je AVC (H.264) Video kodek je VP9 nebo AV1 Vaše zařízení nemá hardwarové dekódování VP9 a toto nastavení je vždy zapnuto, když je aktivní spoofování klienta Povolení této funkce může zlepšit životnost baterie a opravit stahování přehrávání.\n\nAVC má maximální rozlišení 1080p a video přehrávání bude používat více dat než VP9 nebo AV1. Boční efekty iOS - • Filmy nebo placené videa nemusí hrát\n• Živočišné rekony začínají od začátku + • Filmy nebo placená videa nemusí přehrávat\n• Živočišné rekony začínající od začátku\n• Videa mohou skončit 1 sekundu na začátku\n• Žádný opus audio kodek Boční efekty Android VR - • Menu zvukové stopy chybí + • Menu zvukové stopy chybí\n• Stabilní hlasitost není k dispozici diff --git a/src/main/resources/addresources/values-da-rDK/strings.xml b/src/main/resources/addresources/values-da-rDK/strings.xml index f05adbfa4..829adf574 100644 --- a/src/main/resources/addresources/values-da-rDK/strings.xml +++ b/src/main/resources/addresources/values-da-rDK/strings.xml @@ -1139,16 +1139,16 @@ This is because Crowdin requires temporarily flattening this file and removing t Video streams er spoofed Videostreams er ikke forfalskede\n\nVideoafspilning fungerer muligvis ikke At slå denne indstilling fra kan forårsage problemer med videoafspilning. - Standard klient + Standard klient Gennemtving AVC (H.264) Video codec er AVC (H.264) Video-codec er VP9 eller AV1 Din enhed har ikke VP9 hardwareafkodning, og denne indstilling er altid tændt, når Client spoofing er aktiveret Aktivering af dette kan forbedre batteriets levetid og rette afspilningsstuttering.\n\nAVC har en maksimal opløsning på 1080p, og videoafspilning vil bruge flere internetdata end VP9 eller AV1. iOS forfalskning bivirkninger - • Film eller betalte videoer kan ikke afspille\n• Livestreams starter fra starten + • Film eller betalte videoer kan ikke afspille\n• Livestreams starter fra begyndelsen\n• Videoer kan ende 1 sekund tidlig\n• Ingen opus lydkode Android VR spoofing bivirkninger - • Menuen Lydspor mangler + • Menuen Lydspor mangler\n• Stabil lydstyrke er ikke tilgængelig diff --git a/src/main/resources/addresources/values-de-rDE/strings.xml b/src/main/resources/addresources/values-de-rDE/strings.xml index ab8b3e6a2..d98d7f91e 100644 --- a/src/main/resources/addresources/values-de-rDE/strings.xml +++ b/src/main/resources/addresources/values-de-rDE/strings.xml @@ -1139,16 +1139,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Video-Streams sind gefälscht Video-Streams sind nicht gefälscht\n\nVideo-Wiedergabe funktioniert möglicherweise nicht Das Deaktivieren dieser Einstellung kann zu Videowiedergabeproblemen führen. - Standard-Client + Standard-Client AVC erzwingen (H.264) Video Codec ist AVC (H.264) Video Codec ist VP9 oder AV1 Ihr Gerät hat keine VP9-Hardware-Dekodierung, und diese Einstellung ist immer aktiviert, wenn Client-Spoofing aktiviert ist Das Aktivieren kann die Akkulaufzeit verbessern und die Wiedergabe-Stutting beheben.\n\nAVC hat eine maximale Auflösung von 1080p, und die Videowiedergabe wird mehr Internet-Daten als VP9 oder AV1 verwenden. iOS Spoofing Nebeneffekte - • Filme oder bezahlte Videos dürfen nicht\nabspielen • Livestreams beginnen von Anfang an Android VR Spoofing Nebeneffekte - • Audiospurmenü fehlt + • Audio Track Menü fehlt\n• Stabile Lautstärke ist nicht verfügbar diff --git a/src/main/resources/addresources/values-el-rGR/strings.xml b/src/main/resources/addresources/values-el-rGR/strings.xml index 05cce46f3..5979313e6 100644 --- a/src/main/resources/addresources/values-el-rGR/strings.xml +++ b/src/main/resources/addresources/values-el-rGR/strings.xml @@ -1140,16 +1140,16 @@ This is because Crowdin requires temporarily flattening this file and removing t Οι ροές βίντεο παραποιούνται Οι ροές βίντεο δεν παραποιούνται\n\nΗ αναπαραγωγή βίντεο ενδέχεται να μην λειτουργεί Η απενεργοποίηση αυτής της ρύθμισης ενδέχεται να προκαλέσει προβλήματα αναπαραγωγής βίντεο. - Προεπιλεγμένο πρόγραμμα πελάτη + Προεπιλεγμένο πρόγραμμα πελάτη Εξαναγκασμός AVC (H.264) Ο κωδικοποιητής βίντεο είναι ο AVC (H.264) Ο κωδικοποιητής βίντεο είναι ο VP9 ή ο AV1 Η συσκευή σας δεν διαθέτει αποκωδικοποίηση υλικού VP9, και αυτή η ρύθμιση είναι πάντα ενεργή όταν είναι ενεργοποιημένη η παραποίηση προγράμματος πελάτη Ενεργοποιώντας αυτόν τον κωδικοποιητή ίσως να βελτιώσει κατανάλωση ενέργειας και ίσως διορθώσει κολλήματα αναπαραγωγής.\n\nΟ AVC έχει μέγιστη ανάλυση 1080p, και καταναλώνει περισσότερα δεδομένα internet από τον VP9 ή τον AV1. Παρενέργειες παραποίησης σε iOS - • Οι ταινίες ή τα επί πληρωμή βίντεο ενδέχεται να μην αναπαράγονται\n• Οι ζωντανές μεταδόσεις ξεκινούν από την αρχή κατά την αναπαραγωγή + • Οι ταινίες ή τα επί πληρωμή βίντεο ενδέχεται να μην αναπαράγονται\n• Οι ζωντανές μεταδόσεις ξεκινούν από την αρχή κατά την αναπαραγωγή\n• Τα βίντεο μπορεί να τελειώνουν 1 δευτερόλεπτο νωρίτερα\n• Ο κωδικοποιητής ήχου opus δεν είναι διαθέσιμος Παρενέργειες παραποίησης σε Android VR - • Το μενού «Κομμάτι ήχου» λείπει + • Το μενού «Κομμάτι ήχου» λείπει\n• Η λειτουργία «Σταθερή ένταση» δεν είναι διαθέσιμη diff --git a/src/main/resources/addresources/values-es-rES/strings.xml b/src/main/resources/addresources/values-es-rES/strings.xml index 6954c0213..ea56f4abf 100644 --- a/src/main/resources/addresources/values-es-rES/strings.xml +++ b/src/main/resources/addresources/values-es-rES/strings.xml @@ -36,9 +36,11 @@ This is because Crowdin requires temporarily flattening this file and removing t Comprobaciones fallidas Abrir sitio web oficial Ignorar + <h5>Esta app no parece estar parcheada por ti.</h5><br>Esta app podría no funcionar correctamente, <b> podría ser perjudicial o incluso peligrosa de usar</b>.<br><br>Estas comprobaciones implican que esta app está pre-parcheada o se ha obtenido de alguien más:<br><br><small>%1$s</small><br>Se recomienda mucho <b>desinstalar esta app y parchearla por ti mismo</b> para asegurarte de que estás usando una app segura y validada.<p><br>Si se ignora, este aviso se mostrará solo dos veces. Parcheado en un dispositivo diferente No instalado por ReVanced Manager Parcheado hace más de 10 minutos + Parcheado hace %s días La fecha de compilación de APK está dañada @@ -102,7 +104,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Desactivar el brillo del botón de like / suscripción - El botón de \"Me gusta\" y \"suscribir\" no brillará cuando se mencione + El botón de \"Me gusta\" y \"Suscribir\" no brillará cuando se mencione El botón de \"Me gusta\" y \"Suscribir\" brillará cuando se mencione Ocultar separador gris Los separadores de grises están ocultos @@ -111,7 +113,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Marca de agua oculta Marca de agua mostrada Ocultar estantes horizontales - Los estantes están ocultos como:\n• Noticias de último momento\n• Continuar viendo\n• Explorar más canales\n• Comprar\n• Verlo de nuevo + Los estantes están ocultos como:\n• Últimas noticias\n• Continuar viendo\n• Explorar más canales\n• Comprar\n• Verlo de nuevo Se muestran las estanterías @@ -162,7 +164,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Se muestra la sección de películas Ocultar encuestas Las encuestas en el Inicio están ocultas - Se muestran encuestas en ele Inicio + Se muestran encuestas en el Inicio Ocultar pautas comunitarias Las pautas comunitarias están ocultas Se muestran las pautas comunitarias @@ -184,9 +186,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Ocultar barra de canal Barra de canales oculta Barra de canales mostrada - Ocultar los Juegos - Los Juegos están ocultos - Se muestran los Juegos + Ocultar los reproducibles + Los reproducibles están ocultos + Se muestran los reproducibles Ocultar acciones rápidas en pantalla completa Las acciones rápidas están ocultas Se muestran acciones rápidas @@ -221,8 +223,8 @@ This is because Crowdin requires temporarily flattening this file and removing t La sección de tarjetas de información está oculta Se muestra la sección de tarjetas de información Ocultar sección \'Conceptos clave\' - la sección \'Conceptos clave\' está oculta - la sección \'Conceptos clave\' se muestra + La sección \'Conceptos clave\' está oculta + La sección \'Conceptos clave\' se muestra Ocultar sección de transcripción La sección transcripción está oculta Se muestra la sección transcripción @@ -256,6 +258,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Los resultados de inicio/suscripción/búsqueda se filtran para ocultar el contenido que coincide con las frases de palabras clave\n\nLimitaciones\n• Los cortos no se pueden ocultar con el nombre del canal\n• Algunos componentes de la interfaz pueden no estar ocultos\n• Buscar una palabra clave no puede mostrar resultados Coincidir palabras completas + Rodear una palabra clave/frase con comillas dobles evitará las coincidencias parciales de títulos de vídeo y nombres de canales<br><br>Por ejemplo,<br><b>\"ia\"</b> ocultará el vídeo: <b>¿Cómo funciona la IA?</b><br>pero no ocultará: <b>¿Qué significa uso justo?</b> No se puede usar la palabra clave: %s Añadir comillas para usar palabra clave: %s @@ -970,9 +973,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Los mensajes de la comunidad no se muestran en los diseños de tablet - Minijugador + Minireproductor Cambiar el estilo del reproductor minimizado de la aplicación - Tipo de minijugador + Tipo de minreproductor Original Teléfono Tablet @@ -1130,22 +1133,22 @@ This is because Crowdin requires temporarily flattening this file and removing t Slide to seek no está habilitado - Flujos de video espía - Espoya los flujos de vídeo del cliente para evitar problemas de reproducción - Flujos de video espía - Los flujos de vídeo están falsificados - Los streams de vídeo no están falseados\n\nLa reproducción de vídeo puede no funcionar + Falsificación del stream de vídeo + Falsifica el stream de vídeo del cliente para evitar problemas de reproducción + Falsificación del stream de vídeo + El stream de vídeo está falsificado + Los streams de vídeo no están falsificados\n\nLa reproducción de vídeo puede no funcionar Desactivar esta configuración puede causar problemas de reproducción de vídeo. - Cliente por defecto + Cliente por defecto Forzar AVC (H.264) Codec de vídeo AVC (H.264) El códec de vídeo es VP9 o AV1 Su dispositivo no tiene decodificación de hardware VP9, y esta configuración siempre está encendida cuando el cliente spoofing está habilitado Activar esto puede mejorar la vida de la batería y corregir el retraso en la reproducción.\n\nAVC tiene una resolución máxima de 1080p, y la reproducción de vídeo utilizará más datos de Internet que VP9 o AV1. - Efectos secundarios para falseo de iOS - • Las películas o los vídeos de pago no pueden reproducir\n• Las imágenes comienzan desde el principio - Efectos secundarios de falsear RV de Android - • Falta el menú de pista de audio + Efectos secundarios para la falsificación de iOS + • Las películas o vídeos de pago pueden no reproducirse\n• Los directos empiezan desde el principio\n• Los vídeos pueden terminar 1 segundo antes\n• No hay códec de audio de Opus + Efectos secundarios para la falsificación de Android RV + • Falta el menú de pista de audio\n• El volumen estable no está disponible diff --git a/src/main/resources/addresources/values-fi-rFI/strings.xml b/src/main/resources/addresources/values-fi-rFI/strings.xml index 361c2cd4b..2fd10ae1b 100644 --- a/src/main/resources/addresources/values-fi-rFI/strings.xml +++ b/src/main/resources/addresources/values-fi-rFI/strings.xml @@ -1139,16 +1139,16 @@ This is because Crowdin requires temporarily flattening this file and removing t Videon purot ovat puolattu Videon suoratoistot eivät ole spoofed\n\nVideon toisto ei ehkä toimi Tämän asetuksen poistaminen käytöstä voi aiheuttaa videon toiston ongelmia. - Oletus asiakas + Oletus asiakas Pakota AVC (H.264) Videokoodekki on AVC (H.264) Videokoodekki on VP9 tai AV1 Laitteessasi ei ole VP9-laitteiston dekoodausta, ja tämä asetus on aina päällä, kun asiakkaan spoofing on käytössä Tämän käyttöönotto voi parantaa akun kestoa ja korjata toistoa stuttering.\n\nAVC on suurin resoluutio 1080p, ja videon toisto käyttää enemmän internet-tietoja kuin VP9 tai AV1. iOS:n havainnot haittavaikutuksista - • Elokuvat tai maksetut videot eivät välttämättä pelaa\n• Livestreams alkavat alusta + • Elokuvat tai maksetut videot eivät välttämättä pelaa\n• Livestreams alkavat alusta\n• Videot saattavat päättyä 1 sekunnin alkupuolella\n• Ei opus-äänikoodekkia Android VR havaintoon sivuvaikutukset - • Ääniraidan valikko puuttuu + • Ääniraidan valikko puuttuu\n• Vakaa äänenvoimakkuus ei ole käytettävissä diff --git a/src/main/resources/addresources/values-fr-rFR/strings.xml b/src/main/resources/addresources/values-fr-rFR/strings.xml index a00595004..b3c149450 100644 --- a/src/main/resources/addresources/values-fr-rFR/strings.xml +++ b/src/main/resources/addresources/values-fr-rFR/strings.xml @@ -1138,16 +1138,16 @@ This is because Crowdin requires temporarily flattening this file and removing t Les flux vidéo sont falsifiés Les flux vidéo ne sont pas falsifiés\n\nLa lecture de la vidéo pourrait ne pas fonctionner Désactiver ce paramètre peut causer des problèmes de lecture vidéo. - Client par défaut + Client par défaut Forcer AVC (H.264) Le codec vidéo est AVC (H.264) Le codec vidéo est VP9 ou AV1 Votre appareil ne possède pas de décodage matériel VP9, et ce paramètre est toujours activé lorsque la falsification du client est activée Activer ceci peut améliorer la durée de vie de la batterie et corriger les erreurs de lecture.\n\nAVC a une résolution maximale de 1080p, et la lecture vidéo utilisera plus de données internet que VP9 ou AV1. Effets secondaires d\'usurpation iOS - • Les films ou les vidéos payantes pourraient ne pas être lus\n• Les diffusions en direct commencent au début + • Les films ou les vidéos payantes ne peuvent pas lire\n• Les Livestreams commencent depuis le début\n• Les vidéos peuvent se terminer 1 seconde tôt\n• Pas de codec audio opus Effets secondaires de l\'usurpation VR Android - • Le menu de la piste audio est manquant + • Le menu de la piste audio manque\n• Le volume stable n\'est pas disponible diff --git a/src/main/resources/addresources/values-ga-rIE/strings.xml b/src/main/resources/addresources/values-ga-rIE/strings.xml index 89d044e40..531ef94b4 100644 --- a/src/main/resources/addresources/values-ga-rIE/strings.xml +++ b/src/main/resources/addresources/values-ga-rIE/strings.xml @@ -630,6 +630,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Folaigh fuaim a shábháil go cnaipe seinmliosta Tá fuaim a shábháil go seinmliosta i bhfolach Taispeántar fuaim a shábháil go seinmliosta + Folaigh úsáid an cnaipe fuaime seo + Bain úsáid as an cnaipe fuaime seo i bhfolach + Taispeántar úsáid an cnaipe fuaime seo Folaigh moltaí cuardaigh Tá moltaí cuardaigh i bhfolach Taispeántar moltaí cuardaigh @@ -1130,7 +1133,17 @@ This is because Crowdin requires temporarily flattening this file and removing t Níl sleamhnán le lorg cumasaithe + Sruthanna físeán spoof + Spoof na sruthanna físeáin cliant chun saincheisteanna athsheinm a chosc + Sruthanna físeán spoof + Tá sruthanna físe spoofed + Níl sruthanna físeáin meallta\n\nSeans nach n-oibreoidh athsheinm físe Seans go mbeidh fadhbanna athsheinm físe ag baint leis an socrú seo a mhúchadh. + Cliant réamhshocraithe + Fórsa AVC (H.264) + Is é AVC (H.264) an codec físeán + Is é VP9 nó AV1 an codec físeán + Níl díchódú crua-earraí VP9 ar do ghléas, agus bíonn an socrú seo ar siúl i gcónaí nuair atá spoofing Cliant cumasaithe Má dhéantar é seo a chumasú, d\'fhéadfadh sé go bhfeabhsófaí saol na gceallraí agus go n-athshocraigh sé stopáil athsheinm.\n\nTá uas-taifeach 1080p ag AVC, agus úsáidfidh athsheinm físe níos mó sonraí idirlín ná mar a úsáideann VP9 nó AV1. Fo-iarsmaí spoofing iOS Fo-iarsmaí spoofing Android VR diff --git a/src/main/resources/addresources/values-in-rID/strings.xml b/src/main/resources/addresources/values-in-rID/strings.xml index 3e6b69585..1855fac4f 100644 --- a/src/main/resources/addresources/values-in-rID/strings.xml +++ b/src/main/resources/addresources/values-in-rID/strings.xml @@ -100,7 +100,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Tampilkan pesan timbul error di ReVanced Pesan timbul ditampilkan jika terjadi kesalahan Pesan timbul tidak ditampilkan jika terjadi kesalahan - Menonaktifkan pesan timbul kesalahan akan menyembunyikan semua notifikasi kesalahan ReVanced.\n\nAnda tidak akan diberitahu tentang kejadian yang tidak terduga. + Menonaktifkan pemberitahuan kesalahan akan menyembunyikan semua notifikasi kesalahan ReVanced.\n\nAnda tidak akan diberitahu tentang kejadian yang tidak terduga. Nonaktifkan kilau tombol suka / langganan @@ -113,7 +113,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Tanda air disembunyikan Tanda air ditampilkan Sembunyikan rak mendatar - Rak berikut disembunyikan:\n• Berita sela\n• Lanjut menonton\n• Jelajahi saluran lain\n• Belanja\n• Tonton lagi + Rak disembunyikan seperti:\n• Berita terkini\n• Lanjut menonton\n• Jelajahi saluran lainnya\n• Belanja\n• Tonton lagi Rak ditampilkan @@ -153,8 +153,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Sembunyikan footer menu kualitas video Footer menu kualitas video disembunyikan Footer menu kualitas video ditampilkan - Sembunyikan post. komunitas - Post. komunitas disembunyikan + Sembunyikan postingan komunitas + Postingan komunitas disembunyikan Postingan komunitas ditampilkan Sembunyikan spanduk ringkas Spanduk ringkas disembunyikan @@ -198,8 +198,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Sembunyikan rak gambar di pencarian Rak gambar disembunyikan Rak gambar ditampilkan - Sembunyikan post. terbaru - Post. terbaru disembunyikan + Sembunyikan postingan terbaru + Postingan terbaru disembunyikan Kiriman terbaru ditampilkan Sembunyikan daftar putar campuran Daftar putar campuran disembunyikan @@ -458,7 +458,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Tombol subscription ditampilkan Ganti Buat dengan Notifikasi - Tombol Buat diganti dengan tombol Pemberitahuan\n\nCatatan: Iklan video juga akan disembunyikan paksa + Tombol buat diganti dengan tombol Pemberitahuan\n\nCatatan: Menyalakan ini juga secara paksa menyembunyikan iklan video Tombol buat tidak diganti dengan tombol Notifikasi Sembunyikan label tombol navigasi Label disembunyikan @@ -1047,8 +1047,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Tampilkan pengumuman ReVanced - Pengumuman dimunculkan di awal buka - Pengumuman tidak dimunculkan di awal buka + Pengumuman ditampilkan saat memulai + Pengumuman tidak ditampilkan saat memulai Tampilkan pengumuman di awal buka Gagal menghubungkan ke penyedia pengumuman Abaikan @@ -1065,9 +1065,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Palsukan dimensi perangkat - Dimensi perangkat dipalsukan\n\nAkan ada resolusi video lebih tinggi tapi video jadi patah-patah, baterai terkuras, dan efek samping tidak jelas + Dimensi perangkat dipalsukan\n\nAkan ada resolusi video lebih tinggi tapi video menjadi patah-patah, baterai boros, dan efek lainnya yang tidak jelas Dimensi perangkat tidak dipalsukan\n\nMengaktifkan ini akan ada resolusi video lebih tinggi - Mengaktifkan ini menyebabkan video jadi patah-patah, baterai terkuras, dan efek samping tidak jelas. + Mengaktifkan ini menyebabkan video jadi patah-patah, baterai boros, dan efek lainnya yang tidak jelas. Pengaturan GmsCore @@ -1139,16 +1139,16 @@ This is because Crowdin requires temporarily flattening this file and removing t Aliran video dipalsukan Aliran video tidak dipalsukan\n\nPemutaran video mungkin tidak berfungsi Mematikan pengaturan ini dapat menyebabkan masalah pemutaran video. - Klien bawaan + Klien bawaan Paksa AVC (H.264) Kodek video adalah AVC (H.264) Kodek video adalah VP9 atau AV1 Perangkat Anda tidak memiliki dekode perangkat keras VP9, ​​dan pengaturan ini selalu aktif saat pemalsuan Klien diaktifkan Menyalakan ini dapat meningkatkan masa pakai baterai dan memperbaiki gangguan pemutaran.\n\nAVC memiliki resolusi maksimum 1080p, dan pemutaran video akan menggunakan lebih banyak data internet daripada VP9 atau AV1. Efek samping pemalsuan iOS - • Film atau video berbayar mungkin tidak dapat diputar\n• Siaran langsung dimulai dari awal + • Film atau video berbayar mungkin tidak dapat diputar\n• Siaran langsung dimulai dari awal\n• Video mungkin berakhir 1 detik lebih awal\n• Tidak ada codec audio opus Efek samping pemalsuan Android VR - • Menu trek audio hilang + • Menu trek audio hilang\n• Volume stabil tidak tersedia diff --git a/src/main/resources/addresources/values-it-rIT/strings.xml b/src/main/resources/addresources/values-it-rIT/strings.xml index 4be5ebba7..aca0b90a9 100644 --- a/src/main/resources/addresources/values-it-rIT/strings.xml +++ b/src/main/resources/addresources/values-it-rIT/strings.xml @@ -1139,16 +1139,16 @@ This is because Crowdin requires temporarily flattening this file and removing t I flussi video sono spoofed I flussi video non sono spoofed\n\nLa riproduzione video potrebbe non funzionare Disattivare questa impostazione potrebbe causare problemi di riproduzione video. - Client predefinito + Client predefinito Forza AVC (H.264) Il codec video è AVC (H.264) Il codec video è VP9 o AV1 Il tuo dispositivo non ha la decodifica hardware VP9, e questa impostazione è sempre attiva quando lo spoofing client è abilitato Abilitando questo si potrebbe migliorare la durata della batteria e correggere la riproduzione della balbuzia.\n\nAVC ha una risoluzione massima di 1080p, e la riproduzione video utilizzerà più dati internet di VP9 o AV1. iOS spoofing effetti collaterali - • I film o i video a pagamento potrebbero non riprodurre\n• Livestreams start dall\'inizio + • I film o i video a pagamento potrebbero non riprodurre\n• Livestreams start from the start\n• I video potrebbero terminare 1 secondo presto\n• Nessun opus codec audio Android VR spoofing effetti collaterali - • Manca il menu traccia audio + • Il menu traccia audio è mancante\n• Volume stabile non disponibile diff --git a/src/main/resources/addresources/values-ja-rJP/strings.xml b/src/main/resources/addresources/values-ja-rJP/strings.xml index 34a5c4fdd..6936326dc 100644 --- a/src/main/resources/addresources/values-ja-rJP/strings.xml +++ b/src/main/resources/addresources/values-ja-rJP/strings.xml @@ -1030,14 +1030,14 @@ This is because Crowdin requires temporarily flattening this file and removing t DeArrow API endpoint DeArrowサムネイルキャッシュエンドポイントのURL 静止画サムネイル - 静止画は各動画の最初/中/終わりから撮影されます。これらの画像はYouTubeに組み込まれており、外部 API は使用されていません。 + 静止画は各動画の最初/中間/最後から取得されます。これらの画像はYouTubeに組み込まれており、外部 API は使用されていません。 高速静止画を使用する 中品質の静止画キャプチャを使用します。サムネイルの読み込みは速くなりますが、ライブ、未公開、または非常に古い動画には空白のサムネイルが表示されることがあります。 - 高品質のキャプチャを使用する + 高画質の静止画を使用する 取得する静止画サムネイルの時間 ビデオの始まり - ビデオの中盤 - ビデオの終わり + ビデオの中間 + ビデオの最後 DeArrowは一時的に利用できません(ステータスコード: %s) DeArrowは一時的に利用できません @@ -1135,16 +1135,14 @@ This is because Crowdin requires temporarily flattening this file and removing t 動画ストリームを偽装する ビデオストリームはなりすましています この設定をオフにすると、ビデオ再生の問題が発生する可能性があります。 - デフォルトのクライアント + デフォルトのクライアント 強制AVC (H.264) ビデオコーデックは AVC (H.264) です ビデオコーデックはVP9またはAV1です お使いのデバイスにはVP9ハードウェアデコードがありません。この設定はクライアントのスプーフィングが有効になっているときに常に有効になります これを有効にするとバッテリー寿命と再生の途切れが改善する可能性があります。\n\nAVCの最大解像度は1080pで、ビデオ再生はVP9やAV1よりも多くの通信量を使用します。 iOSのクライアント偽装での副作用 - • 動画や有料動画は、\n• ライブストリームは最初から再生されません Android-VR クライアント偽装の副作用 - • オーディオトラックメニューがありません diff --git a/src/main/resources/addresources/values-ko-rKR/strings.xml b/src/main/resources/addresources/values-ko-rKR/strings.xml index 631ad7c1a..777aa0b36 100644 --- a/src/main/resources/addresources/values-ko-rKR/strings.xml +++ b/src/main/resources/addresources/values-ko-rKR/strings.xml @@ -326,7 +326,7 @@ This is because Crowdin requires temporarily flattening this file and removing t 시청 경고 다이얼로그 제거하기 다이얼로그가 숨겨집니다 다이얼로그가 표시됩니다 - • 이 설정은 다이얼로그를 자동으로 허용하기만 하며 연령 제한(성인인증 절차)을 우회할 수 없습니다\n• 성인인증이 필요한 동영상에서 인증을 하려 할 때, 휴대폰 번호가 필요하다고 알려주는 소형 팝업창(다이얼로그) 없이 바로 휴대폰 번호 인증 페이지가 표시됩니다 + • 이 설정은 다이얼로그를 자동으로 허용하기만 하며 연령 제한(성인인증 절차)을 우회할 수 없습니다\n• 즉, 성인인증이 필요한 동영상에서 인증을 하려 할 때, 휴대폰 번호가 필요하다고 알려주는 소형 팝업창(다이얼로그) 없이 바로 휴대폰 번호 인증 페이지가 표시됩니다 외부 다운로드 @@ -1141,14 +1141,14 @@ This is because Crowdin requires temporarily flattening this file and removing t 동영상 스트림을 변경합니다 동영상 스트림을 변경하지 않습니다\n동영상 재생 문제가 발생할 수 있습니다 이 설정을 비활성화하면 동영상 재생 문제가 발생할 수 있습니다 - 기본 클라이언트 + 기본 클라이언트 AVC (H.264) 강제로 활성화하기 - 동영상 코덱을 AVC (H.264)로 활성화합니다 - 동영상 코덱을 VP9 또는 AV1으로 활성화합니다 + 동영상 코덱을 AVC (H.264)로 활성화합니다\n\n• 일부 VP9 코덱 동영상에서 제거되었던 화질 값들이 표시될 수 있습니다.\n• 최대 화질 값이 1080p이므로 초고화질 동영상을 재생할 수 없습니다.\n• HDR 동영상을 재생할 수 없습니다 + 동영상 코덱을 VP9 또는 AV1으로 활성화합니다\n\n• 예전에 업로드된 동영상을 재생했는데 VP9 코덱 응답을 받았을 경우, 일부 화질 값들이 제거되어 360p와 1080p(Premium 기능)만 선택할 수 있거나 화질 메뉴를 선택할 수 없을 수 있습니다 이 기기는 VP9 하드웨어 디코딩을 지원하지 않습니다. 그러므로 \'클라이언트 변경하기\'가 활성화된 경우에는 이 설정은 항상 켜져 있습니다 - 이 설정을 활성화하면 배터리 수명이 향상되고 재생 끊김 현상이 해결될 수 있습니다\n\nAVC의 최대 화질 값은 1080p이며 동영상을 재생하면 VP9 또는 AV1보다 더 많은 인터넷 데이터가 사용됩니다 + 이 설정을 활성화하면 배터리 수명이 향상되고 재생 끊김 현상이 해결될 수 있습니다\n\nAVC의 최대 화질 값은 1080p이며 동영상을 재생하면 VP9 또는 AV1보다 더 많은 데이터가 사용됩니다 \'iOS로 변경\'의 알려진 문제점 - • 영화 또는 유료 동영상이 재생되지 않을 수 있습니다\n• 되감기가 가능한 실시간 스트림이 라이브 중인 시점이 아닌 처음부터 재생될 수 있습니다 + • 영화 또는 유료 동영상이 재생되지 않을 수 있습니다\n• 되감기가 가능한 실시간 스트림이 라이브 중인 시점이 아닌 처음부터 재생될 수 있습니다\n• 동영상이 1초 일찍 종료될 수 있습니다\n• OPUS 오디오 코덱이 지원되지 않습니다 \'Android VR로 변경\'의 알려진 문제점 • 오디오 트랙 메뉴가 표시되지 않습니다\n• 안정적인 볼륨 메뉴가 비활성화된 채로 잠겨있습니다 diff --git a/src/main/resources/addresources/values-nb-rNO/strings.xml b/src/main/resources/addresources/values-nb-rNO/strings.xml index c1bf8b4ab..adbfd851d 100644 --- a/src/main/resources/addresources/values-nb-rNO/strings.xml +++ b/src/main/resources/addresources/values-nb-rNO/strings.xml @@ -1125,16 +1125,16 @@ This is because Crowdin requires temporarily flattening this file and removing t Videostrømmer er skjevet Videostrømmer er ikke skummet\n\nVideoavspilling vil kanskje ikke virke Ved å slå av denne innstillingen kan problemer med videoavspilling. - Standard klient + Standard klient Tving AVC (H.264) Videokodek er AVC (H.264) Videokodek er VP9 eller AV1 Din enhet har ikke VP9, dekotering av maskinvare og denne innstillingen er alltid på når spoofing av klient er aktivert Aktivering av dette kan forbedre batterilevetiden og korrigere avspilling med avvik.\n\nAVC har en maksimal oppløsning på 1080p, og videoavspilling vil bruke flere Internettdata enn VP9 eller AV1. iOS med bivirkninger - • Filmer eller betalte videoer spiller ikke\n• Start av direktestrømming i begynnelsen + • Filmer eller betalte videoer spiller kanskje ikke\n• Livestreams start fra begynnelsen\n• Videoer kan avslutte 1 andre tidlig\n• Ingen opus lydkodek Android VR opplever bivirkninger - • Lydspormeny mangler + • Lydspormeny mangler\n• Stabil volum er ikke tilgjengelig diff --git a/src/main/resources/addresources/values-nl-rNL/strings.xml b/src/main/resources/addresources/values-nl-rNL/strings.xml index 95b58a99c..e360ae781 100644 --- a/src/main/resources/addresources/values-nl-rNL/strings.xml +++ b/src/main/resources/addresources/values-nl-rNL/strings.xml @@ -1140,16 +1140,16 @@ This is because Crowdin requires temporarily flattening this file and removing t Videostreams zijn vervalst Videostreams zijn niet gespoofd\n\nVideo afspelen werkt mogelijk niet Het uitschakelen van deze instelling kan problemen met het afspelen van video veroorzaken. - Standaard client + Standaard client Forceer AVC (H.264) Videocodec is AVC (H.264) Videocodec is VP9 of AV1 Je apparaat heeft geen VP9 hardware-decodering en deze instelling is altijd ingeschakeld wanneer \'Client spoofing\' is ingeschakeld Het inschakelen hiervan kan de batterijduur verbeteren en het terugspringen corrigeren.\n\nAVC heeft een maximale resolutie van 1080p, en het afspelen van video\'s zal meer internetgegevens gebruiken dan VP9 of AV1. iOS vervalste bijwerkingen - • Films of betaalde video\'s kunnen mogelijk niet afspelen\n• Livestreams starten vanaf het begin. + • Films of betaalde video\'s kunnen mogelijk niet afspelen\n• Livestreams beginnen vanaf het begin\n• Video\'s kunnen 1 seconde vroeg eindigen\n• Geen opus audio codec Android VR vervalste bijeffecten - • Audio track menu ontbreekt + • Audio track menu ontbreekt\n• Stabiel volume is niet beschikbaar diff --git a/src/main/resources/addresources/values-pl-rPL/strings.xml b/src/main/resources/addresources/values-pl-rPL/strings.xml index 6bf49d0bd..c579873bb 100644 --- a/src/main/resources/addresources/values-pl-rPL/strings.xml +++ b/src/main/resources/addresources/values-pl-rPL/strings.xml @@ -1141,16 +1141,16 @@ This is because Crowdin requires temporarily flattening this file and removing t Strumienie wideo są spoofowane Strumienie wideo nie jest spoofed\n\nOdtwarzanie wideo może nie działać Wyłączenie tego ustawienia może spowodować problemy z odtwarzaniem wideo. - Domyślny klient + Domyślny klient Siła AVC (H.264) Kodek wideo to AVC (H.264) Kodek wideo to VP9 lub AV1 Twoje urządzenie nie posiada dekodowania VP9, a to ustawienie jest zawsze włączone, gdy spoofing klienta jest włączony Włączenie tego może poprawić żywotność baterii i naprawić stłuczenie odtwarzania.\n\nAVC ma maksymalną rozdzielczość 1080p, a odtwarzanie wideo wykorzysta więcej danych internetowych niż VP9 lub AV1. iOS spoofing działania niepożądane - • Filmy lub płatne filmy mogą nie odtwarzać\n• Livestreams zaczynają się od początku + • Filmy lub płatne filmy mogą nie odtwarzać\n• Livestreams zaczynają się od początku\n• Filmy mogą zakończyć się 1 sekundą na początku\n• Brak kodeka opus audio Działania niepożądane związane z systemem Android VR - • Brakuje menu ścieżki audio + • Brakuje menu ścieżki dźwiękowej\n• Stabilna głośność nie jest dostępna diff --git a/src/main/resources/addresources/values-pt-rBR/strings.xml b/src/main/resources/addresources/values-pt-rBR/strings.xml index 2cf0214cd..12c4b18eb 100644 --- a/src/main/resources/addresources/values-pt-rBR/strings.xml +++ b/src/main/resources/addresources/values-pt-rBR/strings.xml @@ -631,6 +631,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Ocultar botão salvar música na lista de reprodução Salvar música na lista de reprodução está oculta Salvar música na lista de reprodução não está oculta + Ocultar botão Usar este som + Botão Usar este som está oculto + Botão Usar este som não está oculto Ocultar sugestões de busca Sugestões de pesquisa estão ocultas Sugestões de pesquisa são mostradas @@ -929,13 +932,13 @@ This is because Crowdin requires temporarily flattening this file and removing t Os dados são fornecidos pela API do SponsorBlock. Toque aqui para aprender mais e ver como baixar para outras plataformas - Falsificar versão do aplicativo - Versão falsificada - Versão não falsificada - Versão do aplicativo será falsificada para uma versão mais antiga do YouTube.\n\nIsso mudará a aparência e os recursos do aplicativo, mas efeitos colaterais desconhecidos podem ocorrer.\n\nSe desativar, é recomendável limpar os dados do aplicativo para evitar erros na UI. + Spoofing da versão do aplicativo + Versão spoofada + Versão não spoofada + A versão do aplicativo será spoofada para uma versão mais antiga do YouTube.\n\nIsso mudará a aparência e os recursos do aplicativo, mas efeitos colaterais desconhecidos podem ocorrer.\n\nSe desativar, é recomendável limpar os dados do aplicativo para evitar bugs na interface. - Versão alvo da falsificação do aplicativo + Versão de spoofing alvo 18.33.40 - Restaurar RYD no modo Shorts ocultos 18.20.39 - Restaurar a velocidade de vídeo ampla & menu de qualidade @@ -1063,10 +1066,10 @@ This is because Crowdin requires temporarily flattening this file and removing t Repetição automática está desativada - Falsificar dimensões do dispositivo - Dimensões do dispositivo falsificada\n\nQualidades maiores de vídeo podem ser desbloqueadas, mas você pode experimentar uma reprodução de vídeo, desgaste na bateria e efeitos colaterais desconhecidos - Dimensões do dispositivo não falsificadas\n\nAtivando isso pode desbloquear maiores qualidades de vídeo - Ativar isto pode causar travamentos na reprodução de vídeo, desgaste na bateria e efeitos colaterais desconhecidos. + Spoofing de dimensões do dispositivo + Dimensões do dispositivo spoofadas\n\nQualidades maiores de vídeo podem ser desbloqueadas, mas você pode experienciar travamentos na repodução de vídeo, maior gasto de bateria e efeitos colaterais desconhecidos + Dimensões do dispositivo não spoofadas\n\nAtivando isso pode desbloquear maiores qualidades de vídeo + Ativar isto pode causar travamentos na reprodução de vídeo, maior gasto de bateria e efeitos colaterais desconhecidos. Configurações do GmsCore @@ -1132,9 +1135,22 @@ This is because Crowdin requires temporarily flattening this file and removing t Gesto na barra de busca está desativado + Spoofing do fluxo de vídeo + Spoofa o fluxo de vídeo do cliente para evitar problemas de reprodução + Spoofing do fluxo de vídeo + Fluxo de vídeo spoofado + Fluxo de vídeo não spoofado\n\nA reprodução de vídeo pode não funcionar + Desativar esta configuração pode causar problemas de reprodução de vídeo. + Cliente padrão + Forçar AVC (H.264) + Codec de vídeo é AVC (H.264) + Codec de vídeo é VP9 ou AV1 + Seu dispositivo não possui decodificação de VP9 por hardware, e esta configuração está sempre ligada quando o spoofing do cliente está ativado Ativar isso pode melhorar a duração da bateria e corrigir falhas na reprodução.\n\nO AVC tem uma resolução máxima de 1080p, e a reprodução de vídeo usará mais dados de internet do que o VP9 ou o AV1. - Efeitos colaterais de falsificação do iOS - Android VR efeitos colaterais de falsificação + Efeitos colaterais do spoofing de iOS + • Filmes ou vídeos pagos podem não reproduzir\n• Livestreams iniciam do começo\n• Vídeos podem terminar 1 segundo antes do fim\n• Codec de áudio Opus não está disponível + Efeitos colaterais do spoofing de Android VR + • Menu de Faixa de Áudio não está disponível\n• Opção Volume Estável não está disponível diff --git a/src/main/resources/addresources/values-pt-rPT/strings.xml b/src/main/resources/addresources/values-pt-rPT/strings.xml index 7cbc2f1cc..a48417e9e 100644 --- a/src/main/resources/addresources/values-pt-rPT/strings.xml +++ b/src/main/resources/addresources/values-pt-rPT/strings.xml @@ -1136,16 +1136,16 @@ This is because Crowdin requires temporarily flattening this file and removing t Fluxos de vídeo são falsificados Fluxos de vídeo não são spoofed\n\nA reprodução de vídeo pode não funcionar Desativar essa configuração pode causar problemas de reprodução de vídeo. - Cliente padrão + Cliente padrão Forçar AVC (H.264) Codec de vídeo é AVC (H.264) Codec de vídeo é VP9 ou AV1 Seu dispositivo não possui decodificação por hardware VP9, e esta configuração está sempre ligada quando o spoofing do cliente está ativado Habilitar isso pode melhorar a duração da bateria e corrigir travamentos na reprodução.\n\nAVC tem uma resolução máxima de 1080p, e a reprodução de vídeo usará mais dados na internet do que VP9 ou AV1. Efeitos colaterais de iOS - • Filmes ou vídeos pagos podem não reproduzir\n• Livestreams começa desde o início + • Filmes ou vídeos pagos podem não reproduzir\n• Livestreams iniciados desde o início\n• Vídeos podem terminar de 1 segundo cedo\n• Nenhum codec de áudio de opus Android VR efeito de spoofing side - • Falta o menu de faixa de áudio + • Falta o menu de faixa de áudio\n• Volume estável não está disponível diff --git a/src/main/resources/addresources/values-ro-rRO/strings.xml b/src/main/resources/addresources/values-ro-rRO/strings.xml index bd4356e0c..ede6ade1d 100644 --- a/src/main/resources/addresources/values-ro-rRO/strings.xml +++ b/src/main/resources/addresources/values-ro-rRO/strings.xml @@ -1140,16 +1140,16 @@ This is because Crowdin requires temporarily flattening this file and removing t Fluxurile video sunt falsificate Fluxurile video nu sunt marcate cu\n\nEste posibil ca redarea video să nu funcționeze Dezactivarea acestei setări poate cauza probleme de redare video. - Client implicit + Client implicit Forțează AVC (H.264) Codecul video este AVC (H.264) Codecul video este VP9 sau AV1 Dispozitivul dvs. nu are decodare hardware VP9 și această setare este întotdeauna activată atunci când este activată lingerea clientului Activarea acestei funcții ar putea îmbunătăți durata de viață a bateriei și repara blocajul de redare.\n\nAVC are o rezoluție maximă de 1080p, iar redarea video va folosi mai multe date internet decât VP9 sau AV1. Reacţii adverse de lingere iOS - • Filmele sau videoclipurile plătite nu pot reda\n• Livestreams începe de la început + • Este posibil ca filmele sau videoclipurile plătite să nu redea\n• Livestream-urile încep de la începutul\n• Videoclipurile se pot termina cu 1 secundă\n• Nici un codec audio opus Reacţii adverse de spoofing Android VR - • Meniul piesei audio lipsește + • Meniul piesei audio lipsește\n• Volum stabil nu este disponibil diff --git a/src/main/resources/addresources/values-ru-rRU/strings.xml b/src/main/resources/addresources/values-ru-rRU/strings.xml index 51e354978..6c72a6fb9 100644 --- a/src/main/resources/addresources/values-ru-rRU/strings.xml +++ b/src/main/resources/addresources/values-ru-rRU/strings.xml @@ -1137,22 +1137,19 @@ This is because Crowdin requires temporarily flattening this file and removing t Подмена видеопотоков Подмена видеопотоков клиента для предотвращения проблем с воспроизведением видео Подмена видеопотоков - Подмена видеопотоков включена - Подмена видеопотоков отключена. -Воспроизведение видео может не работать + Видеопотоки подменены + Видеопотоки не подменены\n\nВоспроизведение видео может не работать Отключение этой настройки может вызвать проблемы с воспроизведением видео. - Клиент по умолчанию + Клиент по умолчанию Принудительно AVC (H.264) Видеокодек AVC (H.264) Видеокодек VP9 или AV1 - На вашем устройстве нет аппаратного декодирования VP9, и эта настройка всегда включена, когда включена подмена видеопотоков - Включение - может улучшить время работы батареи и исправить задержки воспроизведения. - -AVC макс. разрешение 1080p, и будет использоваться больше интернет данных, чем VP9 или AV1. + На вашем устройстве нет аппаратного декодирования VP9, и эта настройка всегда включена при активной подмене клиента + Включение данной настройки может улучшить время работы батареи и исправить задержки воспроизведения.\n\nAVC имеет максимальное разрешение 1080p, воспроизведение видео будет использовать больше интернет данных в сравнении с VP9 или AV1. Побочные эффекты подмены на iOS - • Фильмы или платные видео могут не воспроизводиться\n• Прямые трансляции начинаются с самого начала + • Фильмы или платные видео не могут проигрывать\n• Livestreams начало с начала\n• Видео могут закончиться 1 секунду рано\n• Нет аудио кодека Побочные эффекты подмены на Android VR - • Отсутствует меню аудиодорожки + • Отсутствует меню аудио дорожки\n• Стабильная громкость недоступна diff --git a/src/main/resources/addresources/values-sr-rCS/strings.xml b/src/main/resources/addresources/values-sr-rCS/strings.xml index d804c4d06..858ac00f2 100644 --- a/src/main/resources/addresources/values-sr-rCS/strings.xml +++ b/src/main/resources/addresources/values-sr-rCS/strings.xml @@ -47,7 +47,7 @@ This is because Crowdin requires temporarily flattening this file and removing t ReVanced Želite li da nastavite? Resetuj - Osveži i restartuj + Osvežite i restartujte Restartuj Uvoz Kopiraj @@ -104,47 +104,47 @@ This is because Crowdin requires temporarily flattening this file and removing t Isključivanje iskačućih obaveštenja o grešci sakriva sva obaveštenja o greškama u ReVancedu.\n\nNećete biti obavešteni ni o kakvim neočekivanim događajima. - Onemogući sjaj dugmadi „Sviđa mi se” / „Zaprati” - Dugmad „Sviđa mi se” i „Zaprati” neće svetleti kada se pritisnu - Dugmad „Sviđa mi se” i „Zaprati” će svetleti kada se pritisnu + Onemogući sjaj dugmadi „Sviđanje” / „Zaprati” + Dugmad „Sviđanje” i „Zaprati” neće svetleti kada se pritisnu + Dugmad „Sviđanje” i „Zaprati” će svetleti kada se pritisnu Sakrij sivi separator Sivi separatori su skriveni Sivi separatori su prikazani Sakrij vodeni žig kanala - Vodeni žig je skriven - Vodeni žig je prikazan + Vodeni žig kanala je skriven + Vodeni žig kanala je prikazan Sakrij horizontalne police - Police su skrivene, kao što su:\n• Važne vesti\n• Nastavite da gledate\n• Istražite još kanala\n• Kupovina\n• Gledajte ponovo - Police su prikazane + Horizontalne police su skrivene, kao što su:\n• Važne vesti\n• Nastavite da gledate\n• Istražite još kanala\n• Kupovina\n• Gledajte ponovo + Horizontalne police su prikazane Sakrij dugme „Učlani me” - Dugme je skriveno - Dugme je prikazano + Dugme „Učlani me” je skriveno + Dugme „Učlani me” je prikazano Sakrij policu „Za vas” na stranici kanala - Polica je skrivena - Polica je prikazana + Polica „Za vas” na stranici kanala je skrivena + Polica „Za vas” na stranici kanala je prikazana Sakrij dugme „Obavesti me” - Dugme je skriveno - Dugme je prikazano + Dugme „Obavesti me” je skriveno + Dugme „Obavesti me” je prikazano - Sakrij preporuke „Drugi su takođe gledali” - Preporuke su skrivene - Preporuke su prikazane + Sakrij preporuke „Drugi su takođe gledali ovaj video” + Preporuke „Drugi su takođe gledali ovaj video” su skrivene + Preporuke „Drugi su takođe gledali ovaj video” su prikazane Sakrij dugme „Prikaži još” - Dugme je skriveno - Dugme je prikazano + Dugme „Prikaži još” je skriveno + Dugme „Prikaži još” je prikazano Sakrij vremenske reakcije Vremenske reakcije su skrivene Vremenske reakcije su prikazane - Sakrij zaglavlje police pri rezultatima pretrage - Zaglavlje police je skriveno - Zaglavlje police je prikazano + Sakrij zaglavlje police u rezultatima pretrage + Zaglavlje police u rezultatima pretrage je skriveno + Zaglavlje police u rezultatima pretrage je prikazano Sakrij smernice kanala Smernice kanala su skrivene Smernice kanala su prikazane @@ -175,15 +175,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Sakrij policu članova kanala Polica članova kanala je skrivena Polica članova kanala je prikazana - Sakrij kutije za hitne slučajeve - Kutije za hitne slučajeve su skrivene - Kutije za hitne slučajeve su prikazane - Sakrij info panele - Info paneli su skriveni - Info paneli su prikazani - Sakrij medicinske panele - Medicinski paneli su skriveni - Medicinski paneli su prikazani + Sakrij polja za hitne slučajeve + Polja za hitne slučajeve su skrivena + Polja za hitne slučajeve su prikazana + Sakrij okna sa informacijama + Okna sa informacijama su skrivena + Okna sa informacijama su prikazana + Sakrij okna sa medicinskim informacijama + Okna sa medicinskim informacijama su skrivena + Okna sa medicinskim informacijama su prikazana Sakrij traku kanala Traka kanala je skrivena Traka kanala je prikazana @@ -191,14 +191,14 @@ This is because Crowdin requires temporarily flattening this file and removing t Sala za igru je skrivena Sala za igru je prikazana Sakrij brze radnje u režimu celog ekrana - Brze radnje su skrivene - Brze radnje su prikazane + Brze radnje u režimu celog ekrana su skrivene + Brze radnje u režimu celog ekrana su prikazane Sakrij srodne videe u brzim radnjama - Srodni videi su skriveni - Srodni videi su prikazani + Srodni videi u brzim radnjama su skriveni + Srodni videi u brzim radnjama su prikazani Sakrij policu sa slikama u rezultatima pretrage - Polica sa slikama je skrivena - Polica sa slikama je prikazana + Polica sa slikama u rezultatima pretrage je skrivena + Polica sa slikama u rezultatima pretrage je prikazana Sakrij najnovije objave Najnovije objave su skrivene Najnovije objave su prikazane @@ -220,9 +220,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Sakrij odeljak „Istražite podkast” Odeljak „Istražite podkast” je skriven Odeljak „Istražite podkast” je prikazan - Sakrij odeljak s info karticama - Odeljak s info karticama je skriven - Odeljak s info karticama je prikazan + Sakrij odeljak za kartice sa informacijama + Odeljak za kartice sa informacijama je skriven + Odeljak za kartice sa informacijama je prikazan Sakrij odeljak „Ključni koncepti” Odeljak „Ključni koncepti” je skriven Odeljak „Ključni koncepti” je prikazan @@ -242,12 +242,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Nevažeći prilagođeni filter: %s Sakrij sadržaj ključne reči Sakrijte videe iz rezultata pretrage i fida koristeći filter ključnih reči - Sakrij videe na početnoj prema ključnim rečima - Videi na početnoj kartici su filtrirani prema ključnim rečima - Videi na početnoj kartici nisu filtrirani prema ključnim rečima - Sakrij videe iz praćenja prema ključnim rečima - Videi na kartici praćenja su filtrirani prema ključnim rečima - Videi na kartici praćenja nisu filtrirani prema ključnim rečima + Sakrij videe na kartici „Početna” prema ključnim rečima + Videi na kartici „Početna” su filtrirani prema ključnim rečima + Videi na kartici „Početna” nisu filtrirani prema ključnim rečima + Sakrij videe na kartici „Praćenja” prema ključnim rečima + Videi na kartici „Praćenja” su filtrirani prema ključnim rečima + Videi na kartici „Praćenja” nisu filtrirani prema ključnim rečima Sakrij rezultate pretrage prema ključnim rečima Rezultati pretrage su filtrirani prema ključnim rečima Rezultati pretrage nisu filtrirani prema ključnim rečima @@ -284,15 +284,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Samosponzorisane kartice su skrivene Samosponzorisane kartice su prikazane Sakrij baner za gledanje proizvoda - Baner je skriven - Baner je prikazan + Baner za gledanje proizvoda je skriven + Baner za gledanje proizvoda je prikazan Sakrij linkove za kupovinu u opisu videa - Linkovi za kupovinu su skriveni - Linkovi za kupovinu su prikazani + Linkovi za kupovinu u opisu videa su skriveni + Linkovi za kupovinu u opisu videa su prikazani Sakrij dugme „Poseti prodavnicu” na stranicama kanala - Dugme je skriveno - Dugme je prikazano + Dugme „Poseti prodavnicu” na stranicama kanala je skriveno + Dugme „Poseti prodavnicu” na stranicama kanala je prikazano Sakrij rezultate veb-pretrage Rezultati veb-pretrage su skriveni Rezultati veb-pretrage su prikazani @@ -317,23 +317,23 @@ This is because Crowdin requires temporarily flattening this file and removing t Link sa vremenskom oznakom je kopiran Prikaži dugme za kopiranje linka videa Dugme je prikazano. Dodirnite da biste kopirali link videa. Dodirnite i zadržite da biste kopirali link videa s vremenskom oznakom - Dugme nije prikazano + Dugme za kopiranje linka videa nije prikazano Prikaži dugme za kopiranje linka videa sa vremenskom oznakom Dugme je prikazano. Dodirnite da biste kopirali link videa s vremenskom oznakom. Dodirnite i zadržite da biste kopirali link videa bez vremenske oznake - Dugme nije prikazano + Dugme za kopiranje linka videa sa vremenskom oznakom nije prikazano Ukloni dijalog o diskreciji gledaoca - Dijalog će biti uklonjen - Dijalog će biti prikazan + Dijalog o diskreciji gledaoca će biti uklonjen + Dijalog o diskreciji gledaoca će biti prikazan Ovo ne zaobilazi starosno ograničenje. Samo ga automatski prihvata. Spoljna preuzimanja Podešavanja za korišćenje spoljnog programa za preuzimanje Prikaži dugme za spoljno preuzimanje - Dugme za preuzimanje je prikazano u plejeru - Dugme za preuzimanje nije prikazano u plejeru + Dugme za spoljno preuzimanje je prikazano u plejeru + Dugme za spoljno preuzimanje nije prikazano u plejeru Zameni izvorno dugme „Preuzmi” Dugme „Preuzmi” otvara spoljni program za preuzimanje @@ -389,9 +389,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Dugmad radnji Sakrijte ili prikažite dugmad ispod videa - Sakrij dugmad „Sviđa mi se” i „Ne sviđa mi se” - Dugmad „Sviđa mi se” i „Ne sviđa mi se” su skrivena - Dugmad „Sviđa mi se” i „Ne sviđa mi se” su prikazana + Sakrij dugmad „Sviđanje” i „Nesviđanje” + Dugmad „Sviđanje” i „Nesviđanje” su skrivena + Dugmad „Sviđanje” i „Nesviđanje” su prikazana Sakrij dugme „Deli” Dugme „Deli” je skriveno @@ -512,8 +512,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Sakrij dugmad za prethodni i sledeći video - Dugmad su skrivena - Dugmad su prikazana + Dugmad za prethodni i sledeći video su skrivena + Dugmad za prethodni i sledeći video su prikazana Sakrij kartice albuma @@ -543,9 +543,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Dugmad za vremensku oznaku i emodžije su prikazana - Sakrij kutiju za kolektivno finansiranje - Kutija za kolektivno finansiranje je skrivena - Kutija za kolektivno finansiranje je prikazana + Sakrij polje za kolektivno finansiranje + Polje za kolektivno finansiranje je skriveno + Polje za kolektivno finansiranje je prikazano Sakrij kartice završnog ekrana @@ -576,9 +576,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Ambijentalni režim u režimu celog ekrana je omogućen - Sakrij info kartice - Info kartice su skrivene - Info kartice su prikazane + Sakrij kartice sa informacijama + Kartice sa informacijama su skrivene + Kartice sa informacijama su prikazane Onemogući animacije brojeva @@ -611,11 +611,11 @@ This is because Crowdin requires temporarily flattening this file and removing t Dugme „Učlani me” je prikazano Sakrij dugme „Zaprati” - Dugme „Zaprati” je skriveno pri pauzi - Dugme „Zaprati” je prikazano pri pauzi + Dugme „Zaprati” je skriveno + Dugme „Zaprati” je prikazano Sakrij dugmad u plejeru pri pauzi - Dugmad su skrivena pri pauzi - Dugmad su prikazana pri pauzi + Dugmad u plejeru pri pauzi su skrivena + Dugmad u plejeru pri pauzi su prikazana Sakrij dugme „Kupovina” Dugme „Kupovina” je skriveno Dugme „Kupovina” je prikazano @@ -637,12 +637,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Sakrij predloge za pretragu Predlozi za pretragu su skriveni Predlozi za pretragu su prikazani - Sakrij dugme „Sviđa mi se” - Dugme „Sviđa mi se” je skriveno - Dugme „Sviđa mi se” je prikazano - Sakrij dugme „Ne sviđa mi se” - Dugme „Ne sviđa mi se” je skriveno - Dugme „Ne sviđa mi se” je prikazano + Sakrij dugme „Sviđanje” + Dugme „Sviđanje” je skriveno + Dugme „Sviđanje” je prikazano + Sakrij dugme „Nesviđanje” + Dugme „Nesviđanje” je skriveno + Dugme „Nesviđanje” je prikazano Sakrij dugme „Komentari” Dugme „Komentari” je skriveno Dugme „Komentari” je prikazano @@ -654,21 +654,21 @@ This is because Crowdin requires temporarily flattening this file and removing t Sakrij dugme „Deli” Dugme „Deli” je skriveno Dugme „Deli” je prikazano - Sakrij info panel - Info panel je skriven - Info panel je prikazan + Sakrij okno sa informacijama + Okno sa informacijama je skriveno + Okno sa informacijama je prikazano Sakrij traku kanala Traka kanala je skrivena Traka kanala je prikazana - Sakrij naslov videa + Sakrij naslov Shorts videa Naslov Shorts videa je skriven Naslov Shorts videa je prikazan Sakrij oznaku metapodataka zvuka Oznaka metapodataka zvuka je skrivena Oznaka metapodataka zvuka je prikazana - Sakrij oznaku linka videa - Oznaka linka videa je skrivena - Oznaka linka videa je prikazana + Sakrij oznaku linka Shorts videa + Oznaka linka Shorts videa je skrivena + Oznaka linka Shorts videa je prikazana Sakrij dugme za zvuk Dugme za zvuk je skriveno Dugme za zvuk je prikazano @@ -687,12 +687,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Vremenska oznaka videa je prikazana - Sakrij iskačuće panele plejera - Iskačući paneli plejera su skriveni - Iskačući paneli plejera su prikazani + Sakrij iskačuće table u plejeru + Iskačuće table u plejeru su skrivene + Iskačuće table u plejeru su prikazane - Neprozirnost sloja plejera + Neprozirnost preklopa plejera Vrednost neprozirnosti između 0-100, gde je 0 prozirno Prozirnost preklopa plejera mora biti između 0-100 @@ -714,9 +714,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Nesviđanja prikazana u procentima Nesviđana prikazana u brojevima - Kompaktno dugme „Sviđa mi se” - Dugme „Sviđa mi se” stilizovano za minimalnu širinu - Dugme „Sviđa mi se” stilizovano za najbolji izgled + Kompaktno dugme „Sviđanje” + Dugme „Sviđanje” stilizovano za minimalnu širinu + Dugme „Sviđanje” stilizovano za najbolji izgled Prikaži iskačuće obaveštenje ako API nije dostupan Iskačuće obaveštenje je prikazano, ako Return YouTube Dislike nije dostupan Iskačuće obaveštenje nije prikazano, ako Return YouTube Dislike nije dostupan @@ -893,7 +893,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Vreme početka segmenta Vreme kraja segmenta Da li su vremena tačna? - Segment je od\n\n%1$s\ndo\n%%2$s\n\n(%3$s)\n\nSpreman za podnošenje? + Segment je od\n\n%1$s\ndo\n%2$s\n\n(%3$s)\n\nSpreman za podnošenje? Početak mora biti pre kraja Prvo označite dva mesta na vremenskoj traci Pregledajte segment i uverite se da glatko preskače @@ -1028,7 +1028,7 @@ This is because Crowdin requires temporarily flattening this file and removing t DeArrow i originalne sličice DeArrow i zahvati kadra Zahvati kadra - DeArrow pruža sličice za YouTube videe prikupljene od zajednice. Ove sličice su često relevantnije od onih koje pruža YouTube\n\n Ako je omogućeno, linkovi videa će biti poslati na API server i nikakvi drugi podaci se neće slati. Ako video nema DeArrow sličice, tada se prikazuju originalne sličice ili sličice zahvata kadra\n\nDodirnite ovde da biste saznali više o DeArrowu + DeArrow pruža sličice za YouTube videe prikupljene od zajednice. Ove sličice su često relevantnije od onih koje pruža YouTube\n\nAko je omogućeno, linkovi videa će biti poslati na API server i nikakvi drugi podaci se neće slati. Ako video nema DeArrow sličice, tada se prikazuju originalne sličice ili sličice zahvata kadra\n\nDodirnite ovde da biste saznali više o DeArrowu Prikaži iskačuće obaveštenje ako API nije dostupan Iskačuće obaveštenje je prikazano, ako DeArrow nije dostupan Iskačuće obaveštenje nije prikazano, ako DeArrow nije dostupan @@ -1108,8 +1108,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Prikaži dugme dijaloga za brzinu - Dugme je prikazano - Dugme nije prikazano + Dugme dijaloga za brzinu je prikazano + Dugme dijaloga za brzinu nije prikazano Prilagođene brzine reprodukcije @@ -1136,21 +1136,19 @@ This is because Crowdin requires temporarily flattening this file and removing t Lažiran video strim - Lažiranje klijenta video strimova da bi se sprečili problemi s reprodukcijom + Lažiranje klijenta video strimova da bi se sprečili problemi sa reprodukcijom Lažirani video strimovi Video strimovi su lažirani Video strimovi nisu lažirani\n\nReprodukcija videa možda neće raditi Isključivanje ovog podešavanja možda će izazvati probleme sa reprodukcijom videa. - Podrazumevani klijent + Podrazumevani klijent Prisili AVC (H.264) Video kodek je AVC (H.264) Video kodek je VP9 ili AV1 Vaš uređaj nema VP9 hardversko dekodiranje, i ova opcija je uvek uključena kada je omogućeno lažiranje klijenta Ako ovo omogućite, možda će se produžiti trajanje baterije i popraviti zastoj pri reprodukciji.\n\nAVC ima maksimalnu rezoluciju od 1080p, a reprodukcija videa će koristiti više internet podataka nego VP9 ili AV1. Neželjeni efekti lažiranja na iOS - • Filmovi ili plaćeni videi se možda neće puštati\n• Strimovi uživo počinju od početka Neželjeni efekti lažiranja na Android VR - • Nedostaje meni „Audio snimak” diff --git a/src/main/resources/addresources/values-sr-rSP/strings.xml b/src/main/resources/addresources/values-sr-rSP/strings.xml index fbe125d8e..545d33b71 100644 --- a/src/main/resources/addresources/values-sr-rSP/strings.xml +++ b/src/main/resources/addresources/values-sr-rSP/strings.xml @@ -47,7 +47,7 @@ This is because Crowdin requires temporarily flattening this file and removing t ReVanced Желите ли да наставите? Ресетуј - Освежи и рестартуј + Освежите и рестартујте Рестартуј Увоз Копирај @@ -104,47 +104,47 @@ This is because Crowdin requires temporarily flattening this file and removing t Искључивање искачућих обавештења о грешци сакрива сва обавештења о грешкама у ReVanced-у.\n\nНећете бити обавештени ни о каквим неочекиваним догађајима. - Онемогући сјај дугмади „Свиђа ми се” / „Запрати” - Дугмад „Свиђа ми се” и „Запрати” неће светлети када се притисну - Дугмад „Свиђа ми се” и „Запрати” ће светлети када се притисну + Онемогући сјај дугмади „Свиђање” / „Запрати” + Дугмад „Свиђање” и „Запрати” неће светлети када се притисну + Дугмад „Свиђање” и „Запрати” ће светлети када се притисну Сакриј сиви сепаратор Сиви сепаратори су скривени Сиви сепаратори су приказани Сакриј водени жиг канала - Водени жиг је скривен - Водени жиг је приказан + Водени жиг канала је скривен + Водени жиг канала је приказан Сакриј хоризонталне полице - Полице су скривене, као што су:\n• Важне вести\n• Наставите да гледате\n• Истражите још канала\n• Куповина\n• Гледајте поново - Полице су приказане + Хоризонталне полице су скривене, као што су:\n• Важне вести\n• Наставите да гледате\n• Истражите још канала\n• Куповина\n• Гледајте поново + Хоризонталне полице су приказане Сакриј дугме „Учлани ме“ - Дугме је скривено - Дугме је приказано + Дугме „Учлани ме” је скривено + Дугме „Учлани ме” је приказано Сакриј полицу „За вас” на страници канала - Полица је скривена - Полица је приказана + Полица „За вас” на страници канала је скривена + Полица „За вас” на страници канала је приказана Сакриј дугме „Обавести ме” - Дугме је скривено - Дугме је приказано + Дугме „Обавести ме” је скривено + Дугме „Обавести ме” је приказано - Сакриј препоруке „Други су такође гледали” - Препоруке су скривене - Препоруке су приказане + Сакриј препоруке „Други су такође гледали овај видео” + Препоруке „Други су такође гледали овај видео” су скривене + Препоруке „Други су такође гледали овај видео” су приказане Сакриј дугме „Прикажи још” - Дугме је скривено - Дугме је приказано + Дугме „Прикажи још” је скривено + Дугме „Прикажи још” је приказано Сакриј временске реакције Временске реакције су скривене Временске реакције су приказане - Сакриј заглавље полице при резултатима претраге - Заглавље полице је скривено - Заглавље полице је приказано + Сакриј заглавље полице у резултатима претраге + Заглавље полице у резултатима претраге је скривено + Заглавље полице у резултатима претраге је приказано Сакриј смернице канала Смернице канала су скривене Смернице канала су приказане @@ -175,15 +175,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Сакриј полицу чланова канала Полица чланова канала је скривена Полица чланова канала је приказана - Сакриј кутије за хитне случајеве - Кутије за хитне случајеве су скривене - Кутије за хитне случајеве су приказане - Сакриј инфо панеле - Инфо панели су скривени - Инфо панели су приказани - Сакриј медицинске панеле - Медицински панели су скривени - Медицински панели су приказани + Сакриј поља за хитне случајеве + Поља за хитне случајеве су скривена + Поља за хитне случајеве су приказана + Сакриј окна са информацијама + Окна са информацијама су скривена + Окна са информацијама су приказана + Сакриј окна са медицинским информацијама + Окна са медицинским информацијама су скривена + Окна са медицинским информацијама су приказана Сакриј траку канала Трака канала је скривена Трака канала је приказана @@ -191,14 +191,14 @@ This is because Crowdin requires temporarily flattening this file and removing t Сала за игру је скривена Сала за игру је приказана Сакриј брзе радње у режиму целог екрана - Брзе радње су скривене - Брзе радње су приказане + Брзе радње у режиму целог екрана су скривене + Брзе радње у режиму целог екрана су приказане Сакриј сродне видее у брзим радњама - Сродни видеи су скривени - Сродни видеи су приказани + Сродни видеи у брзим радњама су скривени + Сродни видеи у брзим радњама су приказани Сакриј полицу са сликама у резултатима претраге - Полица са сликама је скривена - Полица са сликама је приказана + Полица са сликама у резултатима претраге је скривена + Полица са сликама у резултатима претраге је приказана Сакриј најновије објаве Најновије објаве су скривене Најновије објаве су приказане @@ -220,9 +220,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Сакриј одељак „Истражите подкаст” Одељак „Истражите подкаст” је скривен Одељак „Истражите подкаст” је приказан - Сакриј одељак с инфо картицама - Одељак с инфо картицама је скривен - Одељак с инфо картицама је приказан + Сакриј одељак за картице са информацијама + Одељак за картице са информацијама је скривен + Одељак за картице са информацијама је приказан Сакриј одељак „Кључни концепти” Одељак „Кључни концепти” је скривен Одељак „Кључни концепти” је приказан @@ -242,12 +242,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Неважећи прилагођени филтер: %s Сакриј садржај кључне речи Сакријте видее из резултата претраге и фида користећи филтере кључних речи - Сакриј видее на почетној према кључним речима - Видеи на почетној картици су филтрирани према кључним речима - Видеи на почетној картици нису филтрирани према кључним речима - Сакриј видее из праћења према кључним речима - Видеи на картици праћења су филтрирани према кључним речима - Видеи на картици праћења нису филтрирани према кључним речима + Сакриј видее на картици „Почетна” према кључним речима + Видеи на картици „Почетна” су филтрирани према кључним речима + Видеи на картици „Почетна” нису филтрирани према кључним речима + Сакриј видее на картици „Праћења” према кључним речима + Видеи на картици „Праћења” су филтрирани према кључним речима + Видеи на картици „Праћења” нису филтрирани према кључним речима Сакриј резултате претраге према кључним речима Резултати претраге су филтрирани према кључним речима Резултати претраге нису филтрирани према кључним речима @@ -284,15 +284,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Самоспонзорисане картице су скривене Самоспонзорисане картице су приказане Сакриј банер за гледање производа - Банер је скривен - Банер је приказан + Банер за гледање производа је скривен + Банер за гледање производа је приказан Сакриј линкове за куповину у опису видеа - Линкови за куповину су скривени - Линкови за куповину су приказани + Линкови за куповину у опису видеа су скривени + Линкови за куповину у опису видеа су приказани Сакриј дугме „Посети продавницу” на страницама канала - Дугме је скривено - Дугме је приказано + Дугме „Посети продавницу” на страницама канала је скривено + Дугме „Посети продавницу” на страницама канала је приказано Сакриј резултате веб-претраге Резултати веб-претраге су скривени Резултати веб-претраге су приказани @@ -317,23 +317,23 @@ This is because Crowdin requires temporarily flattening this file and removing t Линк са временском ознаком је копиран Прикажи дугме за копирање линка видеа Дугме је приказано. Додирните да бисте копирали линк видеа. Додирните и задржите да бисте копирали линк видеа с временском ознаком - Дугме није приказано + Дугме за копирање линка видеа није приказано Прикажи дугме за копирање линка видеа са временском ознаком Дугме је приказано. Додирните да бисте копирали линк видеа с временском ознаком. Додирните и задржите да бисте копирали линк видеа без временске ознаке - Дугме није приказано + Дугме за копирање линка видеа са временском ознаком није приказано Уклони дијалог о дискрецији гледаоца - Дијалог ће бити уклоњен - Дијалог ће бити приказан + Дијалог о дискрецији гледаоца ће бити уклоњен + Дијалог о дискрецији гледаоца ће бити приказан Ово не заобилази старосно ограничење. Само га аутоматски прихвата. Спољна преузимања Подешавања за коришћење спољног програма за преузимање Прикажи дугме за спољно преузимање - Дугме за преузимање је приказано у плејеру - Дугме за преузимање није приказано у плејеру + Дугме за спољно преузимање је приказано у плејеру + Дугме за спољно преузимање није приказано у плејеру Замени изворно дугме „Преузми” Дугме „Преузми” отвара спољни програм за преузимање @@ -389,11 +389,11 @@ This is because Crowdin requires temporarily flattening this file and removing t Дугмад радњи Сакријте или прикажите дугмад испод видеа - Сакриј дугмад „Свиђа ми се” и „Не свиђа ми се” - Дугмад „Свиђа ми се” и „Не свиђа ми се” су скривена - Дугмад „Свиђа ми се” и „Не свиђа ми се” су приказана + Сакриј дугмад „Свиђање” и „Несвиђање” + Дугмад „Свиђање” и „Несвиђање” су скривена + Дугмад „Свиђање” и „Несвиђање” су приказана - Сакриј дугме \"Дели\" + Сакриј дугме „Дели” Дугме „Дели” је скривено Дугме „Дели” је приказано Замени дугме „Направи” дугметом „Обавештења” - Дугме „Направи” је замењено дугметом „Обавештења”\н\нНапомена: Ако ово омогућите, такође ће се присилно сакрити огласи у видеу + Дугме „Направи” је замењено дугметом „Обавештења”\n\nНапомена: Ако ово омогућите, такође ће се присилно сакрити огласи у видеу Дугме „Направи” није замењено дугметом „Обавештења” Сакриј ознаке дугмади за навигацију Ознаке дугмади за навигацију су скривене @@ -512,8 +512,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Сакриј дугмад за претходни и следећи видео - Дугмад су скривена - Дугмад су приказана + Дугмад за претходни и следећи видео су скривена + Дугмад за претходни и следећи видео су приказана Сакриј картице албума @@ -543,9 +543,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Дугмад за временску ознаку и емоџије су приказана - Сакриј кутију за колективно финансирање - Кутија за колективно финансирање је скривена - Кутија за колективно финансирање је приказана + Сакриј поље за колективно финансирање + Поље за колективно финансирање је скривено + Поље за колективно финансирање је приказано Сакриј картице завршног екрана @@ -576,9 +576,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Амбијентални режим у режиму целог екрана је омогућен - Сакриј инфо картице - Инфо картице су скривене - Инфо картице су приказане + Сакриј картице са информацијама + Картице са информацијама су скривене + Картице са информацијама су приказане Онемогући анимације бројева @@ -611,11 +611,11 @@ This is because Crowdin requires temporarily flattening this file and removing t Дугме „Учлани ме” је приказано Сакриј дугме „Запрати” - Дугме „Запрати” је скривено при паузи - Дугме „Запрати” је приказано при паузи + Дугме „Запрати” је скривено + Дугме „Запрати” је приказано Сакриј дугмад у плејеру при паузи - Дугмад су скривена при паузи - Дугмад су приказана при паузи + Дугмад у плејеру при паузи су скривена + Дугмад у плејеру при паузи су приказана Сакриј дугме „Куповина” Дугме „Куповина” је скривено Дугме „Куповина” је приказано @@ -637,12 +637,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Сакриј предлоге за претрагу Предлози за претрагу су скривени Предлози за претрагу су приказани - Сакриј дугме „Свиђа ми се” - Дугме „Свиђа ми се” је скривено - Дугме „Свиђа ми се” је приказано - Сакриј дугме „Не свиђа ми се” - Дугме „Не свиђа ми се” је скривено - Дугме „Не свиђа ми се” је приказано + Сакриј дугме „Свиђање” + Дугме „Свиђање” је скривено + Дугме „Свиђање” је приказано + Сакриј дугме „Несвиђање” + Дугме „Несвиђање” је скривено + Дугме „Несвиђање” је приказано Сакриј дугме „Коментари” Дугме „Коментари” је скривено Дугме „Коментари” је приказано @@ -654,21 +654,21 @@ This is because Crowdin requires temporarily flattening this file and removing t Сакриј дугме „Дели” Дугме „Дели” је скривено Дугме „Дели” је приказано - Сакриј инфо панел - Инфо панел је скривен - Инфо панел је приказан + Сакриј окно са информацијама + Окно са информацијама је скривено + Окно са информацијама је приказано Сакриј траку канала Трака канала је скривена Трака канала је приказана - Сакриј наслов видеа + Сакриј наслов Shorts видеа Наслов Shorts видеа је скривен Наслов Shorts видеа је приказан Сакриј ознаку метаподатака звука Ознака метаподатака звука је скривена Ознака метаподатака звука је приказана - Сакриј ознаку линка видеа - Ознака линка видеа је скривена - Ознака линка видеа је приказана + Сакриј ознаку линка Shorts видеа + Ознака линка Shorts видеа је скривена + Ознака линка Shorts видеа је приказана Сакриј дугме за звук Дугме за звук је скривено Дугме за звук је приказано @@ -687,12 +687,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Временска ознака видеа је приказана - Сакриј искачуће панеле плејера - Искачући панели плејера су скривени - Искачући панели плејера су приказани + Сакриј искачуће табле у плејеру + Искачуће табле у плејеру су скривене + Искачуће табле у плејеру су приказане - Непрозирност слоја плејера + Непрозирност преклопа плејера Вредност непрозирности између 0-100, где је 0 прозирно Прозирност преклопа плејера мора бити између 0-100 @@ -714,9 +714,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Несвиђања приказана у процентима Несвиђања приказана у бројевима - Компактно дугме „Свиђа ми се” - Дугме „Свиђа ми се” стилизовано за минималну ширину - Дугме „Свиђа ми се” стилизовано за најбољи изглед + Компактно дугме „Свиђање” + Дугме „Свиђање” стилизовано за минималну ширину + Дугме „Свиђање” стилизовано за најбољи изглед Прикажи искачуће обавештење ако API није доступан Искачуће обавештење је приказано, ако Return YouTube Dislike није доступан Искачуће обавештење није приказано, ако Return YouTube Dislike није доступан @@ -893,7 +893,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Време почетка сегмента Време краја сегмента Да ли су времена тачна? - Сегмент је од\n\n%1$s\nдо\n%%2$s\n\n(%3$s)\n\nСпреман за подношење? + Сегмент је од\n\n%1$s\nдо\n%2$s\n\n(%3$s)\n\nСпреман за подношење? Почетак мора бити пре краја Прво означите два места на временској траци Прегледајте сегмент и уверите се да глатко прескаче @@ -1028,7 +1028,7 @@ This is because Crowdin requires temporarily flattening this file and removing t DeArrow и оригиналне сличице DeArrow и захвати кадра Захвати кадра - DeArrow пружа сличице за YouTube видее прикупљене од заједнице. Ове сличице су често релевантније од оних које пружа YouTube\n\n Ако је омогућено, линкови видеа ће бити послати на API сервер и никакви други подаци се неће слати. Ако видео нема DeArrow сличице, тада се приказују оригиналне сличице или сличице захвата кадра\n\nДодирните овде да бисте сазнали више о DeArrow-у + DeArrow пружа сличице за YouTube видее прикупљене од заједнице. Ове сличице су често релевантније од оних које пружа YouTube\n\nАко је омогућено, линкови видеа ће бити послати на API сервер и никакви други подаци се неће слати. Ако видео нема DeArrow сличице, тада се приказују оригиналне сличице или сличице захвата кадра\n\nДодирните овде да бисте сазнали више о DeArrow-у Прикажи искачуће обавештење ако API није доступан Искачуће обавештење је приказано, ако DeArrow није доступан Искачуће обавештење није приказано, ако DeArrow није доступан @@ -1108,8 +1108,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Прикажи дугме дијалога за брзину - Дугме је приказано - Дугме није приказано + Дугме дијалога за брзину је приказано + Дугме дијалога за брзину није приказано Прилагођене брзине репродукције @@ -1136,21 +1136,19 @@ This is because Crowdin requires temporarily flattening this file and removing t Лажиран видео стрим - Лажирање клијента видео стримова да би се спречили проблеми с репродукцијом + Лажирање клијента видео стримова да би се спречили проблеми са репродукцијом Лажирани видео стримови Видео стримови су лажирани Видео стримови нису лажирани\n\nРепродукција видеа можда неће радити - Искључивање ове опције ће можда изазвати проблеме с репродукцијом видеа. - Подразумевани клијент + Искључивање ове опције ће можда изазвати проблеме са репродукцијом видеа. + Подразумевани клијент Присили AVC (H.264) Видео кодек је AVC (H.264) Видео кодек је VP9 или AV1 Ваш уређај нема VP9 хардверско декодирање, и ова опција је увек укључена када је омогућено лажирање клијента Ако ово омогућите, можда ће се продужити трајање батерије и поправити застој при репродукцији.\n\nAVC има максималну резолуцију од 1080p, а репродукција видеа ће користити више интернет података него VP9 или AV1. Нежељени ефекти лажирања на iOS - • Филмови или плаћени видеи се можда неће пуштати\n• Стримови уживо почињу од почетка Нежељени ефекти лажирања на Android VR - • Недостаје мени „Аудио снимак” diff --git a/src/main/resources/addresources/values-sv-rSE/strings.xml b/src/main/resources/addresources/values-sv-rSE/strings.xml index 9ba560287..f213dd6fa 100644 --- a/src/main/resources/addresources/values-sv-rSE/strings.xml +++ b/src/main/resources/addresources/values-sv-rSE/strings.xml @@ -1140,16 +1140,16 @@ This is because Crowdin requires temporarily flattening this file and removing t Videoströmmar är förfalskade Videoströmmar är inte förfalskade\n\nVideouppspelning kanske inte fungerar Att stänga av den här inställningen kan orsaka videouppspelningsproblem. - Standard klient + Standard klient Tvinga AVC (H.264) Videocodec är AVC (H.264) Video-codec är VP9 eller AV1 Din enhet har inte VP9 hårdvaruavkodning, och denna inställning är alltid på när klientförfalskning är aktiverad Aktivering av detta kan förbättra batteriets livslängd och åtgärda uppspelningshjälp.\n\nAVC har en maximal upplösning på 1080p, och videouppspelning kommer att använda mer internetdata än VP9 eller AV1. iOS förfalskning biverkningar - • Filmer eller betalda videor kanske inte spelar\n• Livestreams startar från början + • Filmer eller betalda videor kanske inte spelar\n• Livestreams startar från början\n• Videor kan sluta 1 sekund tidigt\n• Ingen opus-ljud-codec Android VR förfalskning biverkningar - • Ljudspårsmenyn saknas + • Ljudspårsmenyn saknar\n• Stabil volym är inte tillgänglig diff --git a/src/main/resources/addresources/values-tr-rTR/strings.xml b/src/main/resources/addresources/values-tr-rTR/strings.xml index 8b2d50b7d..44016c1a0 100644 --- a/src/main/resources/addresources/values-tr-rTR/strings.xml +++ b/src/main/resources/addresources/values-tr-rTR/strings.xml @@ -1139,16 +1139,16 @@ This is because Crowdin requires temporarily flattening this file and removing t Video akışları taklit ediliyor Video akışları taklit edilmiyor\n\nVideo oynatımı çalışmayabilir Bu ayarı devre dışı bırakmak video oynatma sorunlarına yol açabilir. - Varsayılan istemci + Varsayılan istemci AVC\'yi (H.264) zorla Video kodeği AVC (H.264) Video kodeği VP9 ya da AV1 Cihazınız VP9 donanım çözme özelliği yok ve bu ayar istemci taklit etme açık iken her zaman açıktır Bunu etkinleştirmek batarya ömrünü uzatabilir ve oynatma takılmalarını çözebilir.\n\nAVC en fazla 1080p çözünürlüğe sahiptir ve video oynatımı VP9 veya AV1\'e göre daha fazla internet harcayacaktır. iOS taklidi yan etkileri - • Filmler veya paralı videolar oynatılmayabilir\n• Canlı yayınlar baştan başlar + • Filmler ve paralı videolar oynatılmayabilir\n• Canlı yayınlar baştan başlar\n• Videolar 1 saniye erken bitebilir\n• Opus ses kodeği yok Android VR taklidi yan etkileri - • Ses parçası menüsü eksik + • Ses parçası menüsü eksik\n• Sabit ses kullanılamaz diff --git a/src/main/resources/addresources/values-uk-rUA/strings.xml b/src/main/resources/addresources/values-uk-rUA/strings.xml index 910f3139b..2420ee71e 100644 --- a/src/main/resources/addresources/values-uk-rUA/strings.xml +++ b/src/main/resources/addresources/values-uk-rUA/strings.xml @@ -627,9 +627,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Приховати мітку місцезнаходження Мітку місцезнаходження приховано Мітка місцезнаходження показується - Приховати \"Зберегти звук у список відтворення\" - Кнопку \"Зберегти звук у список відтворення\" приховано - Кнопка \"Зберегти звук у список відтворення\" показується + Приховати \"Зберегти музику\" + Кнопку \"Зберегти музику\" приховано + Кнопка \"Зберегти музику\" показується Приховати \"Використати цю звукову доріжку\" Кнопку \"Використати цю звукову доріжку\" приховано Кнопка \"Використати цю звукову доріжку\" показується @@ -1139,16 +1139,16 @@ This is because Crowdin requires temporarily flattening this file and removing t Відеопотоки підроблено Відеопотоки не підроблено\n\nВідтворення відео може не працювати Вимкнення цього параметра може спричинити проблеми відтворення відео. - Клієнт за замовчуванням + Клієнт за замовчуванням Примусово AVC (H.264) Примусово увімкнено відеокодек AVC (H.264) Примусово увімкнено відеокодек VP9 або AV1 Ваш пристрій не має апаратного декодування VP9, ​​тому це налаштування завжди ввімкнено, коли ввімкнено підробку відеопотоків Увімкнення цієї опції може збільшити час роботи від акумулятора та виправити затримки відтворення.\n\nAVC має максимальну роздільну здатність 1080p, а відтворення відео використовуватиме більше інтернет-даних, ніж на кодеках VP9 або AV1. Побічні ефекти підміни iOS: - • Фільми чи платні відео можуть не відтворюватися.\n• Прямі трансляції починаються з початку + • Фільми чи платні відео можуть не відтворюватися\n• Прямі трансляції починаються з початку\n• Відео можуть закінчуватися на 1 секунду раніше\n• Відсутній аудіокодек Opus Побічні ефекти підміни Android VR: - • Меню звукової доріжки відсутнє + • Меню звукової доріжки відсутнє\n• Меню стабілізації гучності недоступне diff --git a/src/main/resources/addresources/values-vi-rVN/strings.xml b/src/main/resources/addresources/values-vi-rVN/strings.xml index f8302f87f..adf4d85a0 100644 --- a/src/main/resources/addresources/values-vi-rVN/strings.xml +++ b/src/main/resources/addresources/values-vi-rVN/strings.xml @@ -630,6 +630,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Ẩn nút lưu âm thanh vào danh sách phát Lưu âm thanh vào danh sách phát được ẩn Lưu âm thanh vào danh sách phát được hiện + Ẩn nút dùng bản âm thanh này + Nút dùng bản âm thanh này được ẩn + Nút dùng bản âm thanh này được hiện Ẩn đề xuất tìm kiếm Đề xuất tìm kiếm được ẩn Đề xuất tìm kiếm được hiện @@ -1130,10 +1133,22 @@ This is because Crowdin requires temporarily flattening this file and removing t Vuốt để tua không được bật + Giả mạo luồng video + Giả mạo luồng video máy khách để ngăn ngừa sự cố khi phát nền + Giả mạo luồng video + Luồng video đã được giả mạo + Luồng video chưa được giả mạo\n\nPhát nền video có thể không hoạt động Việc tắt cài đặt này có thể gây ra sự cố phát nền video. + Máy khách mặc định + AVC (H.264) ép buộc + Bộ giải mã là AVC (H.264) + Bộ giải mã là VP9 hoặc AV1 + Thiết bị của bạn không có phần cứng giải mã VP9, và thiết lập này luôn bật khi Giả mạo máy khách bật Bật chức năng này có thể tăng cường thời lượng pin và sửa lỗi phát lặp.\n\nAVC có độ phân giải tối đa 1080p, và video phát sẽ dùng nhiều dữ liệu mạng hơn VP9 hoặc AV1. Tác dụng phụ của giả mạo iOS + • Phim hoặc video trả tiền có thể không phát được\n• Luồng phát trực tiếp có thể phát từ đầu\n• Video có thể kết thúc sớm trước 1 giây\n• Không có bộ giải mã âm thanh opus Tác dụng phụ của giả mạo Android VR + • Trình đơn bản âm thanh bị mất\n• Âm lượng thích ứng không hữu dụng diff --git a/src/main/resources/addresources/values-zh-rCN/strings.xml b/src/main/resources/addresources/values-zh-rCN/strings.xml index 3d510392f..f14a79498 100644 --- a/src/main/resources/addresources/values-zh-rCN/strings.xml +++ b/src/main/resources/addresources/values-zh-rCN/strings.xml @@ -1137,16 +1137,15 @@ This is because Crowdin requires temporarily flattening this file and removing t 视频流已被破坏了 视频流没有被破坏的\n\n视频播放可能无法工作 关闭此选项可能会导致视频不能正常播放。 - 默认客户端 + 默认客户端 强制使用 AVC (H.264) 视频编解码器是 AVC (H.264) 视频编解码器是 VP9 或 AV1 您的设备没有 VP9 硬件解码,启用客户端伪装时此设置始终开启 启用此功能可能会改善电池续航力并修复播放卡顿问题。\n\nAVC 的最大解析度为 1080p,且影片播放将使用比 VP9 或 AV1 更多的网路数据。 iOS 伪装副作用 - • 电影或付费视频不能播放\n• Livestreams 不能从一开始开始 Android VR 伪装副作用 - • 缺少音轨菜单 + • 音轨菜单缺少\n• 稳定音量不可用 diff --git a/src/main/resources/addresources/values-zh-rTW/strings.xml b/src/main/resources/addresources/values-zh-rTW/strings.xml index 754c669a0..80254fd78 100644 --- a/src/main/resources/addresources/values-zh-rTW/strings.xml +++ b/src/main/resources/addresources/values-zh-rTW/strings.xml @@ -34,7 +34,7 @@ This is because Crowdin requires temporarily flattening this file and removing t 檢查失敗 - 打開官方網站 + 開啟官方網站 忽略 <h5>此應用程式似乎並非由您修補。</h5><br>該應用程式可能無法正常運作,<b>可能有害甚至存在危險。</b><br><br>這些檢查表明該應用程式是預先修補的或來自其他來源:<br><br><small>%1$s</small><br>強烈建議<b>解除安裝此應用程式並自行修補</b>,以確保您使用的是經過驗證且安全的應用程式。<p><br>如果忽略,此警告僅會顯示兩次。 在其他裝置上修補 @@ -255,7 +255,7 @@ This is because Crowdin requires temporarily flattening this file and removing t This is because keywords can be in any language, and showing an example in the localized script helps convey this. --> 關鍵字和詞組(以換行符分隔)\n\n關鍵字可以是頻道名稱或影片標題中顯示的任何文字\n\n中間帶有大寫字母的詞必須按照其大小寫格式輸入(例如:iPhone、TikTok、LeBlanc) 關於關鍵字過濾 - 主頁/訂閱/搜尋結果將過濾並隱藏符合關鍵字詞組的內容\n\n限制\n• 短片無法通過頻道名稱隱藏\n• 某些使用者介面元件可能無法被隱藏\n• 搜尋關鍵字時可能顯示無結果 + 主頁 / 訂閱 / 搜尋結果將過濾並隱藏符合關鍵字詞組的內容\n\n限制\n• 短片無法通過頻道名稱隱藏\n• 某些使用者介面元件可能無法被隱藏\n• 搜尋關鍵字時可能顯示無結果 匹配整個詞彙 將關鍵字或詞組用雙引號括起來,可以防止影片標題和頻道名稱的部分匹配<br><br>例如:<br><b>\"ai\"</b> 會隱藏影片:<b>How does AI work?</b><br>但不會隱藏:<b>What does fair use mean?</b> @@ -529,8 +529,8 @@ This is because Crowdin requires temporarily flattening this file and removing t 已隱藏留言區塊 已顯示留言區塊 隱藏「建立 Short」按鈕 - 「建立 Short」按鈕已隱藏 - 「建立 Short」按鈕已顯示 + 已隱藏「建立 Short」按鈕 + 已顯示「建立 Short」按鈕 隱藏留言預覽 已隱藏留言預覽 已顯示留言預覽 @@ -630,6 +630,9 @@ This is because Crowdin requires temporarily flattening this file and removing t 隱藏儲存音訊到播放清單按鈕 已隱藏儲存音訊到播放清單按鈕 已顯示儲存音訊到播放清單按鈕 + 隱藏使用此聲音按鈕 + 已隱藏使用此聲音按鈕 + 已顯示使用此聲音按鈕 隱藏搜尋建議 已隱藏搜尋建議 已顯示搜尋建議 @@ -980,14 +983,14 @@ This is because Crowdin requires temporarily flattening this file and removing t 現代樣式 2 現代樣式 3 隱藏擴展和關閉按鈕 - 按鈕已隱藏\n(滑動迷你播放器以擴展或關閉) - 擴展和關閉按鈕已顯示 + 已隱藏按鈕\n(滑動迷你播放器以擴展或關閉) + 已顯示擴展和關閉按鈕 隱藏副標 副標已隱藏 副標已顯示 隱藏快轉和倒帶按鈕 - 快轉和倒帶按鈕已隱藏 - 快轉和倒帶按鈕已顯示 + 已隱藏快轉和倒帶按鈕 + 已顯示快轉和倒帶按鈕 覆蓋層不透明度 不透明度值介於 0-100 之間,0 為透明 迷你播放器覆蓋層的不透明度必須在 0-100 之間 @@ -1052,7 +1055,7 @@ This is because Crowdin requires temporarily flattening this file and removing t 警告 - 你的觀看記錄未被保存。<br><br>這很可能是由於 DNS 廣告封鎖器或網路代理所導致。<br><br>若要解決此問題,請將 <b>s.youtube.com</b> 加入白名單,或關閉所有 DNS 封鎖器和代理。 + 你的觀看記錄未被儲存。<br><br>這很可能是由於 DNS 廣告封鎖器或網路代理所導致。<br><br>若要解決此問題,請將 <b>s.youtube.com</b> 加入白名單,或關閉所有 DNS 封鎖器和代理。 不要再顯示 @@ -1130,10 +1133,22 @@ This is because Crowdin requires temporarily flattening this file and removing t 未啟用滑動預覽 + 欺騙影片串流 + 欺騙用戶端影片串流以避免播放問題 + 欺騙影片串流 + 已欺騙影片串流 + 未欺騙影片串流\n\n可能無法播放影片 關閉此設定可能會導致影片播放發生問題 + 預設用戶端 + 強制 AVC (H.264) + 影片編碼器為 AVC (H.264) + 影片編碼器為 VP9 或 AV1 + 您的裝置不支援 VP9 硬體解碼,當啟用用戶端欺騙時,此設定將始終保持開啟 啟用此功能可能會改善電池續航力並修復播放卡頓問題。\n\nAVC 的最大解析度為 1080p,且影片播放將使用比 VP9 或 AV1 更多的網路數據。 - iOS 偽裝副作用 - Android VR 偽裝副作用 + iOS 欺騙副作用 + • 電影或付費影片可能無法播放\n• 直播從頭開始播放\n• 影片可能會提前 1 秒結束\n• 無 opus 音訊編解碼器 + Android VR 欺騙副作用 + • 音訊軌道選單缺失\n• 穩定音量不可用 From adafe85d77f6a0031a5523b9b7da69475959d78d Mon Sep 17 00:00:00 2001 From: 7Grn <154948822+7Grn@users.noreply.github.com> Date: Tue, 24 Sep 2024 07:37:30 +0900 Subject: [PATCH 02/24] fix(Twitter - Open links with app chooser): Fix incorrect version in compatibility list (#3683) --- .../patches/twitter/misc/links/OpenLinksWithAppChooserPatch.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/app/revanced/patches/twitter/misc/links/OpenLinksWithAppChooserPatch.kt b/src/main/kotlin/app/revanced/patches/twitter/misc/links/OpenLinksWithAppChooserPatch.kt index bdbe07bc5..99d4a3697 100644 --- a/src/main/kotlin/app/revanced/patches/twitter/misc/links/OpenLinksWithAppChooserPatch.kt +++ b/src/main/kotlin/app/revanced/patches/twitter/misc/links/OpenLinksWithAppChooserPatch.kt @@ -12,7 +12,7 @@ import app.revanced.util.exception name = "Open links with app chooser", description = "Instead of opening links directly, open them with an app chooser. " + "As a result you can select a browser to open the link with.", - compatiblePackages = [CompatiblePackage("com.twitter.android", ["10.48.0-release"])], + compatiblePackages = [CompatiblePackage("com.twitter.android", ["10.48.0-release.0"])], use = false, ) @Suppress("unused") From f27cbece71432c80f870a21169ad86f7a45a96ed Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 23 Sep 2024 22:39:29 +0000 Subject: [PATCH 03/24] chore(release): 4.15.1-dev.1 [skip ci] ## [4.15.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v4.15.0...v4.15.1-dev.1) (2024-09-23) ### Bug Fixes * **Twitter - Open links with app chooser:** Fix incorrect version in compatibility list ([#3683](https://github.com/ReVanced/revanced-patches/issues/3683)) ([adafe85](https://github.com/ReVanced/revanced-patches/commit/adafe85d77f6a0031a5523b9b7da69475959d78d)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 24dc99670..04b66c71e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [4.15.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v4.15.0...v4.15.1-dev.1) (2024-09-23) + + +### Bug Fixes + +* **Twitter - Open links with app chooser:** Fix incorrect version in compatibility list ([#3683](https://github.com/ReVanced/revanced-patches/issues/3683)) ([adafe85](https://github.com/ReVanced/revanced-patches/commit/adafe85d77f6a0031a5523b9b7da69475959d78d)) + # [4.15.0](https://github.com/ReVanced/revanced-patches/compare/v4.14.1...v4.15.0) (2024-09-23) diff --git a/gradle.properties b/gradle.properties index ec37ec90c..a380e7f51 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 4.15.0 +version = 4.15.1-dev.1 From 4b88c316ed90c56e83e2aee266561833b36fc37d Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Mon, 23 Sep 2024 18:50:16 -0400 Subject: [PATCH 04/24] fix(YouTube): Show video chapter titles without clipping when overlay buttons are enabled (#3674) --- api/revanced-patches.api | 15 +- .../settings/BaseSettingsResourcePatch.kt | 7 +- .../copyvideourl/CopyVideoUrlBytecodePatch.kt | 4 +- .../copyvideourl/CopyVideoUrlResourcePatch.kt | 6 +- .../interaction/downloads/DownloadsPatch.kt | 4 +- .../downloads/DownloadsResourcePatch.kt | 6 +- .../sponsorblock/SponsorBlockBytecodePatch.kt | 63 ++------ .../sponsorblock/SponsorBlockResourcePatch.kt | 49 +----- .../BottomControlsResourcePatch.kt | 68 +------- .../PlayerControlsBytecodePatch.kt | 143 +++++++++++++---- .../PlayerControlsResourcePatch.kt | 146 ++++++++++++++++++ .../BottomControlsInflateFingerprint.kt | 19 --- ...rprint.kt => ControlsOverlayVisibility.kt} | 5 +- .../OverlayViewInflateFingerprint.kt | 17 ++ .../PlayerBottomControlsInflateFingerprint.kt | 10 ++ ...layerControlsIntegrationHookFingerprint.kt | 15 ++ .../PlayerTopControlsInflateFingerprint.kt | 13 ++ .../speed/button/PlaybackSpeedButtonPatch.kt | 4 +- .../PlaybackSpeedButtonResourcePatch.kt | 6 +- .../kotlin/app/revanced/util/BytecodeUtils.kt | 28 +++- .../kotlin/app/revanced/util/ResourceUtils.kt | 47 +++++- .../drawable/revanced_yt_copy.xml | 2 +- .../drawable/revanced_yt_copy_timestamp.xml | 2 +- .../youtube_controls_bottom_ui_container.xml | 35 ++++- .../drawable/revanced_yt_download_button.xml | 2 +- .../youtube_controls_bottom_ui_container.xml | 21 ++- .../revanced_playback_speed_dialog_button.xml | 2 +- .../youtube_controls_bottom_ui_container.xml | 21 ++- .../drawable/revanced_sb_adjust.xml | 2 +- .../drawable/revanced_sb_backward.xml | 2 +- .../drawable/revanced_sb_compare.xml | 2 +- .../drawable/revanced_sb_edit.xml | 2 +- .../drawable/revanced_sb_forward.xml | 2 +- .../drawable/revanced_sb_logo.xml | 2 +- .../drawable/revanced_sb_publish.xml | 2 +- .../drawable/revanced_sb_voting.xml | 2 +- .../host/layout/youtube_controls_layout.xml | 26 ++-- .../revanced_ic_sc_brightness_auto.xml | 2 +- .../revanced_ic_sc_brightness_manual.xml | 2 +- .../drawable/revanced_ic_sc_volume_mute.xml | 2 +- .../drawable/revanced_ic_sc_volume_normal.xml | 2 +- 41 files changed, 537 insertions(+), 273 deletions(-) create mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsResourcePatch.kt delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/BottomControlsInflateFingerprint.kt rename src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/{PlayerControlsVisibilityFingerprint.kt => ControlsOverlayVisibility.kt} (70%) create mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/OverlayViewInflateFingerprint.kt create mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerBottomControlsInflateFingerprint.kt create mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerControlsIntegrationHookFingerprint.kt create mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerTopControlsInflateFingerprint.kt diff --git a/api/revanced-patches.api b/api/revanced-patches.api index f94f26b01..8185c9e02 100644 --- a/api/revanced-patches.api +++ b/api/revanced-patches.api @@ -2000,13 +2000,19 @@ public final class app/revanced/patches/youtube/misc/playercontrols/BottomContro public final class app/revanced/patches/youtube/misc/playercontrols/PlayerControlsBytecodePatch : app/revanced/patcher/patch/BytecodePatch { public static final field INSTANCE Lapp/revanced/patches/youtube/misc/playercontrols/PlayerControlsBytecodePatch; - public static field showPlayerControlsFingerprintResult Lapp/revanced/patcher/fingerprint/MethodFingerprintResult; public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V - public final fun getShowPlayerControlsFingerprintResult ()Lapp/revanced/patcher/fingerprint/MethodFingerprintResult; + public final fun initializeBottomControl (Ljava/lang/String;)V public final fun initializeControl (Ljava/lang/String;)V public final fun injectVisibilityCheckCall (Ljava/lang/String;)V - public final fun setShowPlayerControlsFingerprintResult (Lapp/revanced/patcher/fingerprint/MethodFingerprintResult;)V +} + +public final class app/revanced/patches/youtube/misc/playercontrols/PlayerControlsResourcePatch : app/revanced/patcher/patch/ResourcePatch, java/io/Closeable { + public static final field INSTANCE Lapp/revanced/patches/youtube/misc/playercontrols/PlayerControlsResourcePatch; + public final fun addBottomControls (Ljava/lang/String;)V + public fun close ()V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V } public final class app/revanced/patches/youtube/misc/playeroverlay/PlayerOverlaysHookPatch : app/revanced/patcher/patch/BytecodePatch { @@ -2174,6 +2180,8 @@ public final class app/revanced/util/BytecodeUtilsKt { public static synthetic fun indexOfFirstInstructionOrThrow$default (Lcom/android/tools/smali/dexlib2/iface/Method;ILkotlin/jvm/functions/Function1;ILjava/lang/Object;)I public static final fun indexOfFirstWideLiteralInstructionValue (Lcom/android/tools/smali/dexlib2/iface/Method;J)I public static final fun indexOfFirstWideLiteralInstructionValueOrThrow (Lcom/android/tools/smali/dexlib2/iface/Method;J)I + public static final fun indexOfFirstWideLiteralInstructionValueReversed (Lcom/android/tools/smali/dexlib2/iface/Method;J)I + public static final fun indexOfFirstWideLiteralInstructionValueReversedOrThrow (Lcom/android/tools/smali/dexlib2/iface/Method;J)I public static final fun indexOfIdResource (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/String;)I public static final fun indexOfIdResourceOrThrow (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/String;)I public static final fun injectHideViewCall (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;IILjava/lang/String;Ljava/lang/String;)V @@ -2201,6 +2209,7 @@ public final class app/revanced/util/ResourceUtilsKt { public static final fun copyXmlNode (Ljava/lang/String;Lapp/revanced/patcher/util/DomFileEditor;Lapp/revanced/patcher/util/DomFileEditor;)Ljava/lang/AutoCloseable; public static final fun doRecursively (Lorg/w3c/dom/Node;Lkotlin/jvm/functions/Function1;)V public static final fun forEachChildElement (Lorg/w3c/dom/Node;Lkotlin/jvm/functions/Function1;)V + public static final fun insertFirst (Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;)V public static final fun iterateXmlNodeChildren (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V } diff --git a/src/main/kotlin/app/revanced/patches/shared/misc/settings/BaseSettingsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/shared/misc/settings/BaseSettingsResourcePatch.kt index f1e488370..1570cc3dc 100644 --- a/src/main/kotlin/app/revanced/patches/shared/misc/settings/BaseSettingsResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/shared/misc/settings/BaseSettingsResourcePatch.kt @@ -9,6 +9,7 @@ import app.revanced.patches.shared.misc.settings.preference.IntentPreference import app.revanced.util.ResourceGroup import app.revanced.util.copyResources import app.revanced.util.getNode +import app.revanced.util.insertFirst import org.w3c.dom.Node import java.io.Closeable @@ -47,11 +48,7 @@ abstract class BaseSettingsResourcePatch( // It may be necessary to ask for the desired resourceValue in the future. AddResourcesPatch("values", resource) }.let { preferenceNode -> - if (prepend && firstChild != null) { - insertBefore(preferenceNode, firstChild) - } else { - appendChild(preferenceNode) - } + insertFirst(preferenceNode) } } diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/copyvideourl/CopyVideoUrlBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/copyvideourl/CopyVideoUrlBytecodePatch.kt index 5d740aa59..cea3988c2 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/interaction/copyvideourl/CopyVideoUrlBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/copyvideourl/CopyVideoUrlBytecodePatch.kt @@ -51,8 +51,8 @@ object CopyVideoUrlBytecodePatch : BytecodePatch(emptySet()) { override fun execute(context: BytecodeContext) { BUTTONS_DESCRIPTORS.forEach { descriptor -> - PlayerControlsBytecodePatch.initializeControl("$descriptor->initializeButton(Landroid/view/View;)V") - PlayerControlsBytecodePatch.injectVisibilityCheckCall("$descriptor->changeVisibility(Z)V") + PlayerControlsBytecodePatch.initializeBottomControl(descriptor) + PlayerControlsBytecodePatch.injectVisibilityCheckCall(descriptor) } } } diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/copyvideourl/CopyVideoUrlResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/copyvideourl/CopyVideoUrlResourcePatch.kt index 23476080b..a53216c28 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/interaction/copyvideourl/CopyVideoUrlResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/copyvideourl/CopyVideoUrlResourcePatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.patch.ResourcePatch import app.revanced.patcher.patch.annotation.Patch import app.revanced.patches.all.misc.resources.AddResourcesPatch import app.revanced.patches.shared.misc.settings.preference.SwitchPreference -import app.revanced.patches.youtube.misc.playercontrols.BottomControlsResourcePatch +import app.revanced.patches.youtube.misc.playercontrols.PlayerControlsResourcePatch import app.revanced.patches.youtube.misc.settings.SettingsPatch import app.revanced.util.ResourceGroup import app.revanced.util.copyResources @@ -13,7 +13,7 @@ import app.revanced.util.copyResources @Patch( dependencies = [ SettingsPatch::class, - BottomControlsResourcePatch::class, + PlayerControlsResourcePatch::class, AddResourcesPatch::class ] ) @@ -34,6 +34,6 @@ internal object CopyVideoUrlResourcePatch : ResourcePatch() { ) ) - BottomControlsResourcePatch.addControls("copyvideourl") + PlayerControlsResourcePatch.addBottomControls("copyvideourl") } } \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/DownloadsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/DownloadsPatch.kt index b22a14616..6c8119fe9 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/DownloadsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/DownloadsPatch.kt @@ -58,8 +58,8 @@ object DownloadsPatch : BytecodePatch( private const val BUTTON_DESCRIPTOR = "Lapp/revanced/integrations/youtube/videoplayer/ExternalDownloadButton;" override fun execute(context: BytecodeContext) { - PlayerControlsBytecodePatch.initializeControl("$BUTTON_DESCRIPTOR->initializeButton(Landroid/view/View;)V") - PlayerControlsBytecodePatch.injectVisibilityCheckCall("$BUTTON_DESCRIPTOR->changeVisibility(Z)V") + PlayerControlsBytecodePatch.initializeBottomControl(BUTTON_DESCRIPTOR) + PlayerControlsBytecodePatch.injectVisibilityCheckCall(BUTTON_DESCRIPTOR) // Main activity is used to launch downloader intent. MainActivityFingerprint.resultOrThrow().mutableMethod.apply { diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/DownloadsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/DownloadsResourcePatch.kt index 24285e53b..8884a296f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/DownloadsResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/DownloadsResourcePatch.kt @@ -9,14 +9,14 @@ import app.revanced.patches.shared.misc.settings.preference.PreferenceScreen import app.revanced.patches.shared.misc.settings.preference.PreferenceScreen.Sorting import app.revanced.patches.shared.misc.settings.preference.SwitchPreference import app.revanced.patches.shared.misc.settings.preference.TextPreference -import app.revanced.patches.youtube.misc.playercontrols.BottomControlsResourcePatch +import app.revanced.patches.youtube.misc.playercontrols.PlayerControlsResourcePatch import app.revanced.patches.youtube.misc.settings.SettingsPatch import app.revanced.util.ResourceGroup import app.revanced.util.copyResources @Patch( dependencies = [ - BottomControlsResourcePatch::class, + PlayerControlsResourcePatch::class, SettingsPatch::class, AddResourcesPatch::class, ], @@ -42,6 +42,6 @@ internal object DownloadsResourcePatch : ResourcePatch() { ResourceGroup("drawable", "revanced_yt_download_button.xml"), ) - BottomControlsResourcePatch.addControls("downloads") + PlayerControlsResourcePatch.addBottomControls("downloads") } } diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockBytecodePatch.kt index e41d0e421..85aad5fd0 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockBytecodePatch.kt @@ -10,7 +10,6 @@ import app.revanced.patcher.patch.PatchException import app.revanced.patcher.patch.annotation.CompatiblePackage import app.revanced.patcher.patch.annotation.Patch import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod -import app.revanced.patches.shared.misc.mapping.ResourceMappingPatch import app.revanced.patches.youtube.layout.sponsorblock.fingerprints.AppendTimeFingerprint import app.revanced.patches.youtube.layout.sponsorblock.fingerprints.ControlsOverlayFingerprint import app.revanced.patches.youtube.layout.sponsorblock.fingerprints.RectangleFieldInvalidatorFingerprint @@ -26,7 +25,10 @@ import app.revanced.patches.youtube.video.information.VideoInformationPatch import app.revanced.patches.youtube.video.videoid.VideoIdPatch import app.revanced.util.exception import com.android.tools.smali.dexlib2.Opcode -import com.android.tools.smali.dexlib2.iface.instruction.* +import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction +import com.android.tools.smali.dexlib2.iface.instruction.Instruction +import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction +import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction35c import com.android.tools.smali.dexlib2.iface.reference.FieldReference import com.android.tools.smali.dexlib2.iface.reference.MethodReference @@ -169,59 +171,14 @@ object SponsorBlockBytecodePatch : BytecodePatch( break } - /* - * Voting & Shield button - */ - val controlsMethodResult = PlayerControlsBytecodePatch.showPlayerControlsFingerprintResult + // Change visibility of the buttons. + PlayerControlsBytecodePatch.initializeTopControl(INTEGRATIONS_CREATE_SEGMENT_BUTTON_CONTROLLER_CLASS_DESCRIPTOR) + PlayerControlsBytecodePatch.injectVisibilityCheckCall(INTEGRATIONS_CREATE_SEGMENT_BUTTON_CONTROLLER_CLASS_DESCRIPTOR) - val controlsLayoutStubResourceId = - ResourceMappingPatch["id", "controls_layout_stub"] - val zoomOverlayResourceId = - ResourceMappingPatch["id", "video_zoom_overlay_stub"] + PlayerControlsBytecodePatch.initializeTopControl(INTEGRATIONS_VOTING_BUTTON_CONTROLLER_CLASS_DESCRIPTOR) + PlayerControlsBytecodePatch.injectVisibilityCheckCall(INTEGRATIONS_VOTING_BUTTON_CONTROLLER_CLASS_DESCRIPTOR) - methods@ for (method in controlsMethodResult.mutableClass.methods) { - val instructions = method.implementation?.instructions!! - instructions@ for ((index, instruction) in instructions.withIndex()) { - // search for method which inflates the controls layout view - if (instruction.opcode != Opcode.CONST) continue@instructions - - when ((instruction as NarrowLiteralInstruction).wideLiteral) { - controlsLayoutStubResourceId -> { - // replace the view with the YouTubeControlsOverlay - val moveResultInstructionIndex = index + 5 - val inflatedViewRegister = - (instructions[moveResultInstructionIndex] as OneRegisterInstruction).registerA - // initialize with the player overlay object - method.addInstructions( - moveResultInstructionIndex + 1, // insert right after moving the view to the register and use that register - """ - invoke-static {v$inflatedViewRegister}, $INTEGRATIONS_CREATE_SEGMENT_BUTTON_CONTROLLER_CLASS_DESCRIPTOR->initialize(Landroid/view/View;)V - invoke-static {v$inflatedViewRegister}, $INTEGRATIONS_VOTING_BUTTON_CONTROLLER_CLASS_DESCRIPTOR->initialize(Landroid/view/View;)V - """, - ) - } - - zoomOverlayResourceId -> { - val invertVisibilityMethod = - context.toMethodWalker(method).nextMethod(index - 6, true).getMethod() as MutableMethod - // change visibility of the buttons - invertVisibilityMethod.addInstructions( - 0, - """ - invoke-static {p1}, $INTEGRATIONS_CREATE_SEGMENT_BUTTON_CONTROLLER_CLASS_DESCRIPTOR->changeVisibilityNegatedImmediate(Z)V - invoke-static {p1}, $INTEGRATIONS_VOTING_BUTTON_CONTROLLER_CLASS_DESCRIPTOR->changeVisibilityNegatedImmediate(Z)V - """.trimIndent(), - ) - } - } - } - } - - // change visibility of the buttons - PlayerControlsBytecodePatch.injectVisibilityCheckCall("$INTEGRATIONS_CREATE_SEGMENT_BUTTON_CONTROLLER_CLASS_DESCRIPTOR->changeVisibility(Z)V") - PlayerControlsBytecodePatch.injectVisibilityCheckCall("$INTEGRATIONS_VOTING_BUTTON_CONTROLLER_CLASS_DESCRIPTOR->changeVisibility(Z)V") - - // append the new time to the player layout + // Append the new time to the player layout. val appendTimeFingerprintResult = AppendTimeFingerprint.result!! val appendTimePatternScanStartIndex = appendTimeFingerprintResult.scanResult.patternScanResult!!.startIndex val targetRegister = diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockResourcePatch.kt index 459e7d9d8..04c158dd8 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockResourcePatch.kt @@ -1,18 +1,16 @@ package app.revanced.patches.youtube.layout.sponsorblock import app.revanced.patcher.data.ResourceContext -import app.revanced.patcher.patch.PatchException import app.revanced.patcher.patch.ResourcePatch import app.revanced.patcher.patch.annotation.Patch import app.revanced.patches.all.misc.resources.AddResourcesPatch import app.revanced.patches.shared.misc.mapping.ResourceMappingPatch import app.revanced.patches.shared.misc.settings.preference.IntentPreference +import app.revanced.patches.youtube.misc.playercontrols.PlayerControlsResourcePatch import app.revanced.patches.youtube.misc.settings.SettingsPatch import app.revanced.patches.youtube.misc.settings.SettingsResourcePatch import app.revanced.util.ResourceGroup import app.revanced.util.copyResources -import app.revanced.util.copyXmlNode -import app.revanced.util.inputStreamFromBundledResource @Patch( dependencies = [ @@ -60,49 +58,6 @@ internal object SponsorBlockResourcePatch : ResourcePatch() { context.copyResources("sponsorblock", resourceGroup) } - // copy nodes from host resources to their real xml files - - val hostingResourceStream = - inputStreamFromBundledResource( - "sponsorblock", - "host/layout/youtube_controls_layout.xml", - )!! - - var modifiedControlsLayout = false - val editor = context.xmlEditor["res/layout/youtube_controls_layout.xml"] - "RelativeLayout".copyXmlNode( - context.xmlEditor[hostingResourceStream], - editor, - ).also { - val document = editor.file - - val children = document.getElementsByTagName("RelativeLayout").item(0).childNodes - - // Replace the startOf with the voting button view so that the button does not overlap - for (i in 1 until children.length) { - val view = children.item(i) - - // Replace the attribute for a specific node only - if (!( - view.hasAttributes() && - view.attributes.getNamedItem( - "android:id", - ).nodeValue.endsWith("live_chat_overlay_button") - ) - ) { - continue - } - - // voting button id from the voting button view from the youtube_controls_layout.xml host file - val votingButtonId = "@+id/revanced_sb_voting_button" - - view.attributes.getNamedItem("android:layout_toStartOf").nodeValue = votingButtonId - - modifiedControlsLayout = true - break - } - }.close() - - if (!modifiedControlsLayout) throw PatchException("Could not modify controls layout") + PlayerControlsResourcePatch.addTopControls("sponsorblock") } } diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/BottomControlsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/BottomControlsResourcePatch.kt index 474ccf479..b62de2872 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/BottomControlsResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/BottomControlsResourcePatch.kt @@ -3,70 +3,18 @@ package app.revanced.patches.youtube.misc.playercontrols import app.revanced.patcher.data.ResourceContext import app.revanced.patcher.patch.ResourcePatch import app.revanced.patcher.patch.annotation.Patch -import app.revanced.patcher.util.DomFileEditor -import app.revanced.patches.shared.misc.mapping.ResourceMappingPatch import java.io.Closeable -@Patch(dependencies = [ResourceMappingPatch::class]) +@Patch( + dependencies = [PlayerControlsBytecodePatch::class], +) +@Deprecated("Patch renamed to PlayerControlsResourcePatch", replaceWith = ReplaceWith("PlayerControlsBytecodePatch")) object BottomControlsResourcePatch : ResourcePatch(), Closeable { - internal var bottomUiContainerResourceId: Long = -1 + override fun execute(context: ResourceContext) {} - private const val TARGET_RESOURCE_NAME = "youtube_controls_bottom_ui_container.xml" - private const val TARGET_RESOURCE = "res/layout/$TARGET_RESOURCE_NAME" - - // The element to the left of the element being added. - private var lastLeftOf = "fullscreen_button" - - private lateinit var resourceContext: ResourceContext - private lateinit var targetDocumentEditor: DomFileEditor - - override fun execute(context: ResourceContext) { - resourceContext = context - targetDocumentEditor = context.xmlEditor[TARGET_RESOURCE] - - bottomUiContainerResourceId = ResourceMappingPatch["id", "bottom_ui_container_stub"] - } - - /** - * Add new controls to the bottom of the YouTube player. - * - * @param resourceDirectoryName The name of the directory containing the hosting resource. - */ fun addControls(resourceDirectoryName: String) { - val sourceDocumentEditor = resourceContext.xmlEditor[ - this::class.java.classLoader.getResourceAsStream( - "$resourceDirectoryName/host/layout/$TARGET_RESOURCE_NAME", - )!!, - ] - val sourceDocument = sourceDocumentEditor.file - val targetDocument = targetDocumentEditor.file - - val targetElementTag = "android.support.constraint.ConstraintLayout" - - val sourceElements = sourceDocument.getElementsByTagName(targetElementTag).item(0).childNodes - val targetElement = targetDocument.getElementsByTagName(targetElementTag).item(0) - - for (index in 1 until sourceElements.length) { - val element = sourceElements.item(index).cloneNode(true) - - // If the element has no attributes there's no point to adding it to the destination. - if (!element.hasAttributes()) continue - - // Set the elements lastLeftOf attribute to the lastLeftOf value. - val namespace = "@+id" - element.attributes.getNamedItem("yt:layout_constraintRight_toLeftOf").nodeValue = - "$namespace/$lastLeftOf" - - // Set lastLeftOf attribute to the current element. - val nameSpaceLength = 5 - lastLeftOf = element.attributes.getNamedItem("android:id").nodeValue.substring(nameSpaceLength) - - // Add the element. - targetDocument.adoptNode(element) - targetElement.appendChild(element) - } - sourceDocumentEditor.close() + PlayerControlsResourcePatch.addBottomControls(resourceDirectoryName) } - override fun close() = targetDocumentEditor.close() -} + override fun close() {} +} \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsBytecodePatch.kt index 1cc2cfcf0..b9de57d15 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsBytecodePatch.kt @@ -1,65 +1,144 @@ package app.revanced.patches.youtube.misc.playercontrols -import app.revanced.util.exception import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.extensions.InstructionExtensions.addInstruction -import app.revanced.patcher.fingerprint.MethodFingerprintResult +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.annotation.Patch -import app.revanced.patches.youtube.shared.fingerprints.LayoutConstructorFingerprint -import app.revanced.patches.youtube.misc.playercontrols.fingerprints.BottomControlsInflateFingerprint -import app.revanced.patches.youtube.misc.playercontrols.fingerprints.PlayerControlsVisibilityFingerprint +import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod +import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod.Companion.toMutable +import app.revanced.patches.youtube.misc.playercontrols.fingerprints.ControlsOverlayVisibility +import app.revanced.patches.youtube.misc.playercontrols.fingerprints.OverlayViewInflateFingerprint +import app.revanced.patches.youtube.misc.playercontrols.fingerprints.PlayerBottomControlsInflateFingerprint +import app.revanced.patches.youtube.misc.playercontrols.fingerprints.PlayerControlsIntegrationHookFingerprint +import app.revanced.patches.youtube.misc.playercontrols.fingerprints.PlayerTopControlsInflateFingerprint +import app.revanced.util.alsoResolve +import app.revanced.util.getReference +import app.revanced.util.indexOfFirstInstructionOrThrow +import app.revanced.util.indexOfFirstWideLiteralInstructionValueReversedOrThrow +import app.revanced.util.resultOrThrow +import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction +import com.android.tools.smali.dexlib2.iface.reference.MethodReference +import com.android.tools.smali.dexlib2.iface.reference.TypeReference @Patch( description = "Manages the code for the player controls of the YouTube player.", - dependencies = [BottomControlsResourcePatch::class], + dependencies = [PlayerControlsResourcePatch::class], ) object PlayerControlsBytecodePatch : BytecodePatch( - setOf(LayoutConstructorFingerprint, BottomControlsInflateFingerprint) + setOf( + PlayerTopControlsInflateFingerprint, + PlayerBottomControlsInflateFingerprint, + OverlayViewInflateFingerprint, + PlayerControlsIntegrationHookFingerprint + ) ) { - lateinit var showPlayerControlsFingerprintResult: MethodFingerprintResult + private const val INTEGRATIONS_CLASS_DESCRIPTOR = + "Lapp/revanced/integrations/youtube/patches/PlayerControlsPatch;" - private var moveToRegisterInstructionIndex: Int = 0 - private var viewRegister: Int = 0 - private lateinit var inflateFingerprintResult: MethodFingerprintResult + private lateinit var inflateTopControlMethod: MutableMethod + private var inflateTopControlInsertIndex: Int = -1 + private var inflateTopControlRegister: Int = -1 + + private lateinit var inflateBottomControlMethod: MutableMethod + private var inflateBottomControlInsertIndex: Int = -1 + private var inflateBottomControlRegister: Int = -1 + + private lateinit var visibilityMethod: MutableMethod + private var visibilityInsertIndex: Int = 0 + + private lateinit var visibilityImmediateMethod: MutableMethod + private var visibilityImmediateInsertIndex: Int = 0 override fun execute(context: BytecodeContext) { - LayoutConstructorFingerprint.result?.let { - if (!PlayerControlsVisibilityFingerprint.resolve(context, it.classDef)) - throw LayoutConstructorFingerprint.exception - } ?: throw LayoutConstructorFingerprint.exception + fun MutableMethod.indexOfFirstViewInflateOrThrow() = + indexOfFirstInstructionOrThrow { + val reference = getReference() + reference?.definingClass == "Landroid/view/ViewStub;" && + reference.name == "inflate" + } - showPlayerControlsFingerprintResult = PlayerControlsVisibilityFingerprint.result!! + PlayerBottomControlsInflateFingerprint.resultOrThrow().mutableMethod.apply{ + inflateBottomControlMethod = this - inflateFingerprintResult = BottomControlsInflateFingerprint.result!!.also { - moveToRegisterInstructionIndex = it.scanResult.patternScanResult!!.endIndex - viewRegister = - (it.mutableMethod.implementation!!.instructions[moveToRegisterInstructionIndex] as OneRegisterInstruction).registerA + val inflateReturnObjectIndex = indexOfFirstViewInflateOrThrow() + 1 + inflateBottomControlRegister = getInstruction(inflateReturnObjectIndex).registerA + inflateBottomControlInsertIndex = inflateReturnObjectIndex + 1 } + + PlayerTopControlsInflateFingerprint.resultOrThrow().mutableMethod.apply { + inflateTopControlMethod = this + + val inflateReturnObjectIndex = indexOfFirstViewInflateOrThrow() + 1 + inflateTopControlRegister = getInstruction(inflateReturnObjectIndex).registerA + inflateTopControlInsertIndex = inflateReturnObjectIndex + 1 + } + + ControlsOverlayVisibility.alsoResolve( + context, PlayerTopControlsInflateFingerprint + ).mutableMethod.apply { + visibilityMethod = this + } + + // Hook the fullscreen close button. Used to fix visibility + // when seeking and other situations. + OverlayViewInflateFingerprint.resultOrThrow().mutableMethod.apply { + val resourceIndex = indexOfFirstWideLiteralInstructionValueReversedOrThrow( + PlayerControlsResourcePatch.fullscreenButton + ) + + val index = indexOfFirstInstructionOrThrow(resourceIndex) { + opcode == Opcode.CHECK_CAST && getReference()?.type == + "Landroid/widget/ImageView;" + } + val register = getInstruction(index).registerA + + addInstruction(index + 1, "invoke-static { v$register }, " + + "$INTEGRATIONS_CLASS_DESCRIPTOR->setFullscreenCloseButton(Landroid/widget/ImageView;)V") + } + + visibilityImmediateMethod = PlayerControlsIntegrationHookFingerprint.resultOrThrow().mutableMethod } /** - * Injects the code to change the visibility of controls. + * Injects the code to initialize the controls. * @param descriptor The descriptor of the method which should be called. */ - fun injectVisibilityCheckCall(descriptor: String) { - showPlayerControlsFingerprintResult.mutableMethod.addInstruction( - 0, - """ - invoke-static {p1}, $descriptor - """ + internal fun initializeTopControl(descriptor: String) { + inflateTopControlMethod.addInstruction( + inflateTopControlInsertIndex++, + "invoke-static { v$inflateTopControlRegister }, $descriptor->initialize(Landroid/view/View;)V" ) } /** * Injects the code to initialize the controls. - * @param descriptor The descriptor of the method which should be calleed. + * @param descriptor The descriptor of the method which should be called. */ - fun initializeControl(descriptor: String) { - inflateFingerprintResult.mutableMethod.addInstruction( - moveToRegisterInstructionIndex + 1, - "invoke-static {v$viewRegister}, $descriptor" + fun initializeBottomControl(descriptor: String) { + inflateBottomControlMethod.addInstruction( + inflateBottomControlInsertIndex++, + "invoke-static { v$inflateBottomControlRegister }, $descriptor->initializeButton(Landroid/view/View;)V" ) } + /** + * Injects the code to change the visibility of controls. + * @param descriptor The descriptor of the method which should be called. + */ + fun injectVisibilityCheckCall(descriptor: String) { + visibilityMethod.addInstruction( + visibilityInsertIndex++, + "invoke-static { p1 , p2 }, $descriptor->changeVisibility(ZZ)V" + ) + + visibilityImmediateMethod.addInstruction( + visibilityImmediateInsertIndex++, + "invoke-static { p0 }, $descriptor->changeVisibilityImmediate(Z)V" + ) + } + + + @Deprecated("Obsolete", replaceWith = ReplaceWith("initializeBottomControl")) + fun initializeControl(descriptor: String)= initializeBottomControl(descriptor) } \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsResourcePatch.kt new file mode 100644 index 000000000..f78bc9259 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsResourcePatch.kt @@ -0,0 +1,146 @@ +package app.revanced.patches.youtube.misc.playercontrols + +import app.revanced.patcher.data.ResourceContext +import app.revanced.patcher.patch.PatchException +import app.revanced.patcher.patch.ResourcePatch +import app.revanced.patcher.patch.annotation.Patch +import app.revanced.patcher.util.DomFileEditor +import app.revanced.patches.shared.misc.mapping.ResourceMappingPatch +import app.revanced.util.copyXmlNode +import app.revanced.util.findElementByAttributeValue +import app.revanced.util.findElementByAttributeValueOrThrow +import app.revanced.util.inputStreamFromBundledResource +import org.w3c.dom.Node +import java.io.Closeable + +@Patch(dependencies = [ResourceMappingPatch::class]) +object PlayerControlsResourcePatch : ResourcePatch(), Closeable { + private const val TARGET_RESOURCE_NAME = "youtube_controls_bottom_ui_container.xml" + private const val TARGET_RESOURCE = "res/layout/$TARGET_RESOURCE_NAME" + + internal var bottomUiContainerResourceId: Long = -1L + internal var controlsLayoutStub: Long = -1L + internal var heatseekerViewstub = -1L + internal var fullscreenButton = -1L + + private lateinit var resourceContext: ResourceContext + + /** + * The element to the left of the element being added. + */ + private var bottomLastLeftOf = "@id/fullscreen_button" + private lateinit var bottomInsertBeforeNode: Node + private lateinit var bottomTargetDocumentEditor: DomFileEditor + private lateinit var bottomTargetElement : Node + + override fun execute(context: ResourceContext) { + bottomUiContainerResourceId = ResourceMappingPatch["id", "bottom_ui_container_stub"] + controlsLayoutStub = ResourceMappingPatch["id", "controls_layout_stub"] + heatseekerViewstub = ResourceMappingPatch["id", "heatseeker_viewstub"] + fullscreenButton = ResourceMappingPatch["id", "fullscreen_button"] + + resourceContext = context + bottomTargetDocumentEditor = context.xmlEditor[TARGET_RESOURCE] + val document = bottomTargetDocumentEditor.file + + bottomTargetElement = document.getElementsByTagName( + "android.support.constraint.ConstraintLayout" + ).item(0) + + bottomInsertBeforeNode = document.childNodes.findElementByAttributeValue( + "android:inflatedId", + bottomLastLeftOf + ) ?: document.childNodes.findElementByAttributeValueOrThrow( + "android:id", // Older targets use non inflated id. + bottomLastLeftOf + ) + } + + // Internal until this is modified to work with any patch (and not just SponsorBlock). + internal fun addTopControls(resourceDirectoryName: String) { + val hostingResourceStream = inputStreamFromBundledResource( + resourceDirectoryName, + "host/layout/youtube_controls_layout.xml", + )!! + + val editor = resourceContext.xmlEditor["res/layout/youtube_controls_layout.xml"] + + "RelativeLayout".copyXmlNode( + resourceContext.xmlEditor[hostingResourceStream], + editor, + ).use { + val document = editor.file + val children = document.getElementsByTagName("RelativeLayout").item(0).childNodes + + // Replace the startOf with the voting button view so that the button does not overlap + for (index in 1 until children.length) { + val view = children.item(index) + + // FIXME: This uses hard coded values that only works with SponsorBlock. + // If other top buttons are added by other patches, this code must be changed. + if (view.hasAttributes() && view.attributes.getNamedItem("android:id") + .nodeValue.endsWith("live_chat_overlay_button") + ) { + // voting button id from the voting button view from the youtube_controls_layout.xml host file + val votingButtonId = "@+id/revanced_sb_voting_button" + view.attributes.getNamedItem("android:layout_toStartOf").nodeValue = + votingButtonId + + return + } + } + } + + throw PatchException("Could not find expected xml to modify") + } + + /** + * Add new controls to the bottom of the YouTube player. + * + * @param resourceDirectoryName The name of the directory containing the hosting resource. + */ + fun addBottomControls(resourceDirectoryName: String) { + val sourceDocumentEditor = resourceContext.xmlEditor[ + this::class.java.classLoader.getResourceAsStream( + "$resourceDirectoryName/host/layout/$TARGET_RESOURCE_NAME", + )!!, + ] + + val sourceElements = sourceDocumentEditor.file.getElementsByTagName( + "android.support.constraint.ConstraintLayout" + ).item(0).childNodes + + // Copy the patch layout xml into the target layout file. + for (index in 1 until sourceElements.length) { + val element = sourceElements.item(index).cloneNode(true) + + // If the element has no attributes there's no point to adding it to the destination. + if (!element.hasAttributes()) continue + + element.attributes.getNamedItem("yt:layout_constraintRight_toLeftOf").nodeValue = bottomLastLeftOf + bottomLastLeftOf = element.attributes.getNamedItem("android:id").nodeValue + + bottomTargetDocumentEditor.file.adoptNode(element) + // Elements do not need to be added in the layout order since a layout constraint is used, + // but in order is easier to make sense of while debugging. + bottomTargetElement.insertBefore(element, bottomInsertBeforeNode) + bottomInsertBeforeNode = element + } + + sourceDocumentEditor.close() + } + + override fun close() { + arrayOf( + "@id/bottom_end_container", + "@id/multiview_button", + ).forEach { + bottomTargetDocumentEditor.file.childNodes.findElementByAttributeValue( + "android:id", + it + )?.setAttribute("yt:layout_constraintRight_toLeftOf", bottomLastLeftOf) + } + + bottomTargetDocumentEditor.close() + } +} diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/BottomControlsInflateFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/BottomControlsInflateFingerprint.kt deleted file mode 100644 index 9480c6a1e..000000000 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/BottomControlsInflateFingerprint.kt +++ /dev/null @@ -1,19 +0,0 @@ -package app.revanced.patches.youtube.misc.playercontrols.fingerprints - -import app.revanced.patcher.extensions.or -import app.revanced.patches.youtube.misc.playercontrols.BottomControlsResourcePatch -import app.revanced.util.patch.LiteralValueFingerprint -import com.android.tools.smali.dexlib2.AccessFlags -import com.android.tools.smali.dexlib2.Opcode - -internal object BottomControlsInflateFingerprint : LiteralValueFingerprint( - accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL or AccessFlags.SYNTHETIC, - returnType = "L", - parameters = listOf(), - opcodes = listOf( - Opcode.CHECK_CAST, - Opcode.INVOKE_VIRTUAL, - Opcode.MOVE_RESULT_OBJECT - ), - literalSupplier = { BottomControlsResourcePatch.bottomUiContainerResourceId } -) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerControlsVisibilityFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/ControlsOverlayVisibility.kt similarity index 70% rename from src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerControlsVisibilityFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/ControlsOverlayVisibility.kt index 672086f60..6655c09c8 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerControlsVisibilityFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/ControlsOverlayVisibility.kt @@ -4,7 +4,10 @@ import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.MethodFingerprint import com.android.tools.smali.dexlib2.AccessFlags -internal object PlayerControlsVisibilityFingerprint : MethodFingerprint( +/** + * Resolves to the class found in [PlayerTopControlsInflateFingerprint]. + */ +internal object ControlsOverlayVisibility : MethodFingerprint( accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL, returnType = "V", parameters = listOf("Z", "Z") diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/OverlayViewInflateFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/OverlayViewInflateFingerprint.kt new file mode 100644 index 000000000..21b0592e1 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/OverlayViewInflateFingerprint.kt @@ -0,0 +1,17 @@ +package app.revanced.patches.youtube.misc.playercontrols.fingerprints + +import app.revanced.patcher.extensions.or +import app.revanced.patcher.fingerprint.MethodFingerprint +import app.revanced.patches.youtube.misc.playercontrols.PlayerControlsResourcePatch +import app.revanced.util.containsWideLiteralInstructionValue +import com.android.tools.smali.dexlib2.AccessFlags + +internal object OverlayViewInflateFingerprint : MethodFingerprint( + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, + returnType = "V", + parameters = listOf("Landroid/view/View;"), + customFingerprint = { methodDef, _ -> + methodDef.containsWideLiteralInstructionValue(PlayerControlsResourcePatch.fullscreenButton) && + methodDef.containsWideLiteralInstructionValue(PlayerControlsResourcePatch.heatseekerViewstub) + } +) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerBottomControlsInflateFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerBottomControlsInflateFingerprint.kt new file mode 100644 index 000000000..8deab7b9e --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerBottomControlsInflateFingerprint.kt @@ -0,0 +1,10 @@ +package app.revanced.patches.youtube.misc.playercontrols.fingerprints + +import app.revanced.patches.youtube.misc.playercontrols.PlayerControlsResourcePatch +import app.revanced.util.patch.LiteralValueFingerprint + +internal object PlayerBottomControlsInflateFingerprint : LiteralValueFingerprint( + returnType = "Ljava/lang/Object;", + parameters = listOf(), + literalSupplier = { PlayerControlsResourcePatch.bottomUiContainerResourceId } +) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerControlsIntegrationHookFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerControlsIntegrationHookFingerprint.kt new file mode 100644 index 000000000..2fb86baa4 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerControlsIntegrationHookFingerprint.kt @@ -0,0 +1,15 @@ +package app.revanced.patches.youtube.misc.playercontrols.fingerprints + +import app.revanced.patcher.extensions.or +import app.revanced.patcher.fingerprint.MethodFingerprint +import com.android.tools.smali.dexlib2.AccessFlags + +internal object PlayerControlsIntegrationHookFingerprint : MethodFingerprint( + accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC, + returnType = "V", + parameters = listOf("Z"), + customFingerprint = { methodDef, classDef -> + methodDef.name == "fullscreenButtonVisibilityChanged" && + classDef.type == "Lapp/revanced/integrations/youtube/patches/PlayerControlsPatch;" + } +) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerTopControlsInflateFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerTopControlsInflateFingerprint.kt new file mode 100644 index 000000000..7b7a952c8 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerTopControlsInflateFingerprint.kt @@ -0,0 +1,13 @@ +package app.revanced.patches.youtube.misc.playercontrols.fingerprints + +import app.revanced.patcher.extensions.or +import app.revanced.patches.youtube.misc.playercontrols.PlayerControlsResourcePatch +import app.revanced.util.patch.LiteralValueFingerprint +import com.android.tools.smali.dexlib2.AccessFlags + +internal object PlayerTopControlsInflateFingerprint : LiteralValueFingerprint( + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, + returnType = "V", + parameters = listOf(), + literalSupplier = { PlayerControlsResourcePatch.controlsLayoutStub } +) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/speed/button/PlaybackSpeedButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/speed/button/PlaybackSpeedButtonPatch.kt index 19895fa8a..c99e5a200 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/speed/button/PlaybackSpeedButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/speed/button/PlaybackSpeedButtonPatch.kt @@ -32,7 +32,7 @@ object PlaybackSpeedButtonPatch : BytecodePatch(emptySet()) { SwitchPreference("revanced_playback_speed_dialog_button"), ) - PlayerControlsBytecodePatch.initializeControl("$SPEED_BUTTON_CLASS_DESCRIPTOR->initializeButton(Landroid/view/View;)V") - PlayerControlsBytecodePatch.injectVisibilityCheckCall("$SPEED_BUTTON_CLASS_DESCRIPTOR->changeVisibility(Z)V") + PlayerControlsBytecodePatch.initializeBottomControl(SPEED_BUTTON_CLASS_DESCRIPTOR) + PlayerControlsBytecodePatch.injectVisibilityCheckCall(SPEED_BUTTON_CLASS_DESCRIPTOR) } } \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/speed/button/PlaybackSpeedButtonResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/speed/button/PlaybackSpeedButtonResourcePatch.kt index ffc8d8f1d..b35975f7c 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/speed/button/PlaybackSpeedButtonResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/speed/button/PlaybackSpeedButtonResourcePatch.kt @@ -3,12 +3,12 @@ package app.revanced.patches.youtube.video.speed.button import app.revanced.patcher.data.ResourceContext import app.revanced.patcher.patch.ResourcePatch import app.revanced.patcher.patch.annotation.Patch -import app.revanced.patches.youtube.misc.playercontrols.BottomControlsResourcePatch +import app.revanced.patches.youtube.misc.playercontrols.PlayerControlsResourcePatch import app.revanced.util.ResourceGroup import app.revanced.util.copyResources @Patch( - dependencies = [BottomControlsResourcePatch::class], + dependencies = [PlayerControlsResourcePatch::class], ) internal object PlaybackSpeedButtonResourcePatch : ResourcePatch() { override fun execute(context: ResourceContext) { @@ -20,6 +20,6 @@ internal object PlaybackSpeedButtonResourcePatch : ResourcePatch() { ), ) - BottomControlsResourcePatch.addControls("speedbutton") + PlayerControlsResourcePatch.addBottomControls("speedbutton") } } diff --git a/src/main/kotlin/app/revanced/util/BytecodeUtils.kt b/src/main/kotlin/app/revanced/util/BytecodeUtils.kt index 0f81d8d4e..d22bfbdbe 100644 --- a/src/main/kotlin/app/revanced/util/BytecodeUtils.kt +++ b/src/main/kotlin/app/revanced/util/BytecodeUtils.kt @@ -15,6 +15,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction import com.android.tools.smali.dexlib2.iface.instruction.WideLiteralInstruction import com.android.tools.smali.dexlib2.iface.reference.Reference import com.android.tools.smali.dexlib2.util.MethodUtil +import org.stringtemplate.v4.compiler.Bytecode.instructions fun MethodFingerprint.resultOrThrow() = result ?: throw exception @@ -73,7 +74,7 @@ fun MutableMethod.injectHideViewCall( * @param resourceName the name of the resource to find the id for. * @return the index of the first instruction with the id of the given resource name, or -1 if not found. * @throws PatchException if the resource cannot be found. - * @see [indexOfIdResourceOrThrow] + * @see [indexOfIdResourceOrThrow], [indexOfFirstWideLiteralInstructionValueReversed] */ fun Method.indexOfIdResource(resourceName: String): Int { val resourceId = ResourceMappingPatch["id", resourceName] @@ -86,6 +87,7 @@ fun Method.indexOfIdResource(resourceName: String): Int { * Requires [ResourceMappingPatch] as a dependency. * * @throws [PatchException] if the resource is not found, or the method does not contain the resource id literal value. + * @see [indexOfIdResource], [indexOfFirstWideLiteralInstructionValueReversedOrThrow] */ fun Method.indexOfIdResourceOrThrow(resourceName: String): Int { val index = indexOfIdResource(resourceName) @@ -120,6 +122,30 @@ fun Method.indexOfFirstWideLiteralInstructionValueOrThrow(literal: Long): Int { return index } +/** + * Find the index of the last wide literal instruction with the given value. + * + * @return the last literal instruction with the value, or -1 if not found. + * @see indexOfFirstWideLiteralInstructionValueOrThrow + */ +fun Method.indexOfFirstWideLiteralInstructionValueReversed(literal: Long) = implementation?.let { + it.instructions.indexOfLast { instruction -> + (instruction as? WideLiteralInstruction)?.wideLiteral == literal + } +} ?: -1 + +/** + * Find the index of the last wide literal instruction with the given value, + * or throw an exception if not found. + * + * @return the last literal instruction with the value, or throws [PatchException] if not found. + */ +fun Method.indexOfFirstWideLiteralInstructionValueReversedOrThrow(literal: Long): Int { + val index = indexOfFirstWideLiteralInstructionValueReversed(literal) + if (index < 0) throw PatchException("Could not find literal value: $literal") + return index +} + /** * Check if the method contains a literal with the given value. * diff --git a/src/main/kotlin/app/revanced/util/ResourceUtils.kt b/src/main/kotlin/app/revanced/util/ResourceUtils.kt index 56076078d..2f0d93f84 100644 --- a/src/main/kotlin/app/revanced/util/ResourceUtils.kt +++ b/src/main/kotlin/app/revanced/util/ResourceUtils.kt @@ -1,8 +1,11 @@ package app.revanced.util import app.revanced.patcher.data.ResourceContext +import app.revanced.patcher.patch.PatchException import app.revanced.patcher.util.DomFileEditor import app.revanced.util.resource.BaseResource +import org.w3c.dom.Attr +import org.w3c.dom.Element import org.w3c.dom.Node import org.w3c.dom.NodeList import java.io.InputStream @@ -39,6 +42,14 @@ fun Node.doRecursively(action: (Node) -> Unit) { for (i in 0 until this.childNodes.length) this.childNodes.item(i).doRecursively(action) } +fun Node.insertFirst(node: Node) { + if (hasChildNodes()) { + insertBefore(node, firstChild) + } else { + appendChild(node) + } +} + /** * Copy resources from the current class loader to the resource directory. * @@ -49,7 +60,7 @@ fun ResourceContext.copyResources( sourceResourceDirectory: String, vararg resources: ResourceGroup, ) { - val targetResourceDirectory = this.get("res") + val targetResourceDirectory = this["res", false] for (resourceGroup in resources) { resourceGroup.resources.forEach { resource -> @@ -164,3 +175,37 @@ internal fun Node.addResource( } internal fun org.w3c.dom.Document.getNode(tagName: String) = this.getElementsByTagName(tagName).item(0) + +internal fun NodeList.findElementByAttributeValue(attributeName: String, value: String): Element? { + for (i in 0 until length) { + val node = item(i) + if (node.nodeType == Node.ELEMENT_NODE) { + val element = node as Element + + if (element.getAttribute(attributeName) == value) { + return element + } + + // Recursively search. + val found = element.childNodes.findElementByAttributeValue(attributeName, value) + if (found != null) { + return found + } + } + } + + return null +} + +internal fun NodeList.findElementByAttributeValueOrThrow(attributeName: String, value: String): Element { + return findElementByAttributeValue(attributeName, value) ?: throw PatchException("Could not find: $attributeName $value") +} + +internal fun Element.copyAttributesFrom(oldContainer: Element) { + // Copy attributes from the old element to the new element + val attributes = oldContainer.attributes + for (i in 0 until attributes.length) { + val attr = attributes.item(i) as Attr + setAttribute(attr.name, attr.value) + } +} diff --git a/src/main/resources/copyvideourl/drawable/revanced_yt_copy.xml b/src/main/resources/copyvideourl/drawable/revanced_yt_copy.xml index 008393c30..2a5bbc872 100644 --- a/src/main/resources/copyvideourl/drawable/revanced_yt_copy.xml +++ b/src/main/resources/copyvideourl/drawable/revanced_yt_copy.xml @@ -1,6 +1,6 @@ diff --git a/src/main/resources/addresources/values-es-rES/strings.xml b/src/main/resources/addresources/values-es-rES/strings.xml index ea56f4abf..c8dee4342 100644 --- a/src/main/resources/addresources/values-es-rES/strings.xml +++ b/src/main/resources/addresources/values-es-rES/strings.xml @@ -100,7 +100,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Mostrar brindis en error ReVanced Toast mostrado si ocurre un error Toast no se muestra si ocurre un error - Desactivar los brindis de errores oculta todas las notificaciones de error ReVanced\n\nNo se le notificará de ningún evento inesperado. + Desactivar los avisos (toasts) de errores oculta todas las notificaciones de error ReVanced\n\nNo se le notificará de ningún evento inesperado. Desactivar el brillo del botón de like / suscripción @@ -199,8 +199,8 @@ This is because Crowdin requires temporarily flattening this file and removing t El estante de imágenes está oculto El estante de imágenes se muestra Ocultar últimos mensajes - Los últimos mensajes están ocultos - Se muestran los últimos mensajes + Las últimas publicaciones están ocultas + Se muestran las últimas publicaciones Ocultar listas de mezcla Las listas de reproducción mixtas están ocultas Mezclar listas de reproducción son mostradas @@ -258,11 +258,11 @@ This is because Crowdin requires temporarily flattening this file and removing t Los resultados de inicio/suscripción/búsqueda se filtran para ocultar el contenido que coincide con las frases de palabras clave\n\nLimitaciones\n• Los cortos no se pueden ocultar con el nombre del canal\n• Algunos componentes de la interfaz pueden no estar ocultos\n• Buscar una palabra clave no puede mostrar resultados Coincidir palabras completas - Rodear una palabra clave/frase con comillas dobles evitará las coincidencias parciales de títulos de vídeo y nombres de canales<br><br>Por ejemplo,<br><b>\"ia\"</b> ocultará el vídeo: <b>¿Cómo funciona la IA?</b><br>pero no ocultará: <b>¿Qué significa uso justo?</b> + Rodear una palabra clave/frase con comillas dobles evitará las coincidencias parciales de títulos de vídeo y nombres de canales<br><br>Por ejemplo,<br><b>\"ia\"</b> ocultará el vídeo: <b>¿Cómo funciona la AI?</b><br>pero no ocultará: <b>¿Quieres aprender a bailar?</b> No se puede usar la palabra clave: %s Añadir comillas para usar palabra clave: %s - La palabra clave tiene declaraciones en conflicto: %s + La palabra clave tiene declaraciones conflictivas: %s La palabra clave es demasiado corta y requiere comillas: %s Palabra clave ocultará todos los vídeos: %s @@ -274,7 +274,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Los anuncios a pantalla completa están ocultos\n\nEsta función solo está disponible para dispositivos más antiguos Se muestran anuncios a pantalla completa Ocultar anuncios botonados - Los anuncios bloqueados están ocultos + Los anuncios botonados están ocultos Se muestran anuncios botonados Ocultar etiqueta de promoción de pago Etiqueta de promoción pagada está oculta @@ -307,7 +307,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Se muestran las promociones de YouTube Premium en el reproductor de vídeo - Ocultar video anuncios + Ocultar anuncios de video Los anuncios de vídeo están ocultos Los anuncios de vídeo se muestran @@ -328,7 +328,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Esto no pasa por alto la restricción de edad, sino que simplemente la acepta automáticamente. - Descarga externa + Descargas externa Configuración para el uso de un descargador externo Mostrar botón externo de descarga Botón de descarga mostrado en el reproductor @@ -442,8 +442,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Ocultar o cambiar botones en la barra de navegación Ocultar Principal - El botón de principal está oculto - Se muestra el botón de principal + El botón de inicio está oculto + El botón de inicio es visible Ocultar Shorts El botón de Shorts está oculto @@ -928,7 +928,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Reiniciar color Restablecer Acerca de - Los datos son proporcionados por la API de SponsorBlock. Pulsa aquí para aprender más y ver las descargas de otras plataformas + Los datos son proporcionados por la API de SponsorBlock. Pulsa aquí para aprender más y ver las descargas para otras plataformas Versión de la aplicación Spoof @@ -1164,8 +1164,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Anuncios de audio desbloqueados - %s no está disponible. Los anuncios pueden mostrarse. Intenta cambiar a otro servicio de bloque de anuncios en la configuración. - El servidor %s devolvió un error. Los anuncios pueden mostrar. Intente cambiar a otro servicio de bloque de anuncios en la configuración. + %s no está disponible. Los anuncios pueden mostrarse. Intenta cambiar a otro servicio de bloqueo de anuncios en la configuración. + El servidor %s devolvió un error. Los anuncios pueden mostrar. Intente cambiar a otro servicio de bloqueo de anuncios en la configuración. Bloquear anuncios de vídeo incrustados Desactivado Proxy luminoso diff --git a/src/main/resources/addresources/values-hu-rHU/strings.xml b/src/main/resources/addresources/values-hu-rHU/strings.xml index 19f3f9c8e..84691dcdf 100644 --- a/src/main/resources/addresources/values-hu-rHU/strings.xml +++ b/src/main/resources/addresources/values-hu-rHU/strings.xml @@ -630,6 +630,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Hang mentése a lejátszási listára gomb elrejtése A hang mentése a lejátszási listára gomb el van rejtve A hang mentése a lejátszási listára gomb megjelenik + \'Használja ezt a hang gombot\' elrejtése + \'Használja ezt a hang gombot\' elrejtve + \'Használja ezt a hang gombot\' látszik Keresési javaslatok elrejtése A keresési javaslatok el vannak rejtve A keresési javaslatok megjelennek @@ -1131,10 +1134,22 @@ This is because Crowdin requires temporarily flattening this file and removing t A csúsztatás a kereséshez nincs engedélyezve + Hamis videó stream + Hamisítsa meg az ügyfél videó streamet a lejátszási problémák elkerülése érdekében + Hamis videó stream + A videó stream hamisítva + A videó stream nincs hamisítva\n\nLehet, hogy a videólejátszás nem működik A beállítás kikapcsolása videolejátszási problémákat okozhat. + Alapértelmezett kliens + AVC (H.264) kényszerítése + A videokodek AVC (H.264) + A videokodek VP9 vagy AV1 + Eszközén nincs VP9 hardveres dekódolás, és ez a beállítás mindig be van kapcsolva, ha az ügyfélhamisítás engedélyezve van Ennek engedélyezése javíthatja az akkumulátor élettartamát, és kijavíthatja a lejátszás akadozását.\n\nAz AVC maximális felbontása 1080p, és a videolejátszás több internetadatot használ, mint a VP9 vagy az AV1. iOS hamisítási mellékhatások + • Előfordulhat, hogy a filmeket és a fizetős videókat nem lehet lejátszani\n• Az élő közvetítések elölről kezdődnek.\n• A videók 1 másodperccel korábban véget érhetnek\n• Nincs opus audiokodek Android VR-hamisítási mellékhatások + • Hiányzik a hangsáv menü\n• A stabil hangerő nem érhető el diff --git a/src/main/resources/addresources/values-in-rID/strings.xml b/src/main/resources/addresources/values-in-rID/strings.xml index 1855fac4f..ae0d1f389 100644 --- a/src/main/resources/addresources/values-in-rID/strings.xml +++ b/src/main/resources/addresources/values-in-rID/strings.xml @@ -87,7 +87,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Debugging - Mengaktifkan atau menonaktifkan opsi debugging + Menyalakan atau mematikan opsi debugging Catatan debug Log debug diaktifkan Log debug dinonaktifkan @@ -109,7 +109,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Sembunyikan pemisah abu-abu Pemisah abu-abu disembunyikan Pemisah abu-abu ditampilkan - Sembunyikan watermark saluran + Sembunyikan tanda air saluran Tanda air disembunyikan Tanda air ditampilkan Sembunyikan rak mendatar @@ -289,15 +289,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Tautan belanja disembunyikan Tautan belanja ditampilkan - Sembunyikan \'Lihat toko\' di laman saluran + Sembunyikan tombol \'Lihat toko\' di laman saluran Tombol disembunyikan Tombol ditampilkan Sembunyikan hasil pencarian web Hasil pencarian web disembunyikan Hasil pencarian web ditampilkan - Sembunyikan banner merchandise + Sembunyikan spanduk barang dagangan Banner merchandise disembunyikan - Banner merchandise ditampilkan + Spanduk barang dagangan ditampilkan Sembunyikan iklan layar penuh hanya berfungsi pada perangkat lama @@ -409,9 +409,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Tombol download disembunyikan Tombol download ditampilkan - Sembunyikan Thanks - Tombol thanks disembunyikan - Tombol thanks ditampilkan + Sembunyikan Terima kasih + Tombol terima kasih disembunyikan + Tombol terima kasih ditampilkan Sembunyikan Klip Tombol klip disembunyikan @@ -535,8 +535,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Komentar pratinjau disembunyikan Komentar pratinjau ditampilkan Sembunyikan \'terima kasih\' - Tmbl terima kasih disembunyikan - Tmbl terima kasih ditampilkan + Tombol terima kasih disembunyikan + Tombol terima kasih ditampilkan Sembunyikan timestamp dan tombol emoji Tombol timestamp dan emoji disembunyikan Tombol timestamp dan emoji ditampilkan @@ -872,7 +872,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Tidak dapat mengirim segmen.\nSudah ada Segmen berhasil terkirim - SponsorBlock sementara tidak tersedia (API timed out). + SponsorBlock tidak tersedia (API kehabisan waktu) SponsorBlock sementara tidak tersedia (status %d) SponsorBlock sementara tidak tersedia Tidak dapat memilih segmen (API timed out) @@ -894,7 +894,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Apakah waktunya benar? Segmen dari\n\n%1$s\nke\n%2$s\n\n(%3$s)\n\nSiap dikirim? Awal harus sebelum akhir - Tandai terlebih dahulu dua lokasi di kotak waktu + Tandai dua lokasi pada bilah waktu terlebih dahulu Pratinjau segmen, dan memastikan segmen dilewati dengan lancar Atur pengaturan tempo segmen secara manual Apakah Anda ingin mengubah tempo untuk awal atau akhir dari segmen? diff --git a/src/main/resources/addresources/values-ru-rRU/strings.xml b/src/main/resources/addresources/values-ru-rRU/strings.xml index 6c72a6fb9..d1e44bd0e 100644 --- a/src/main/resources/addresources/values-ru-rRU/strings.xml +++ b/src/main/resources/addresources/values-ru-rRU/strings.xml @@ -1147,9 +1147,9 @@ This is because Crowdin requires temporarily flattening this file and removing t На вашем устройстве нет аппаратного декодирования VP9, и эта настройка всегда включена при активной подмене клиента Включение данной настройки может улучшить время работы батареи и исправить задержки воспроизведения.\n\nAVC имеет максимальное разрешение 1080p, воспроизведение видео будет использовать больше интернет данных в сравнении с VP9 или AV1. Побочные эффекты подмены на iOS - • Фильмы или платные видео не могут проигрывать\n• Livestreams начало с начала\n• Видео могут закончиться 1 секунду рано\n• Нет аудио кодека + • Фильмы или платные видео могут не воспроизводиться.\n• Прямые трансляции начинаются с самого начала.\n• Видео может закончиться на 1 секунду раньше.\n• Отсутствует аудиокодек opus Побочные эффекты подмены на Android VR - • Отсутствует меню аудио дорожки\n• Стабильная громкость недоступна + • Пункт меню \"Звуковая дорожка\" отсутствует\n• Пункт меню \"Постоянный уровень громкости\" недоступен diff --git a/src/main/resources/addresources/values-sr-rCS/strings.xml b/src/main/resources/addresources/values-sr-rCS/strings.xml index 858ac00f2..0f6a1342d 100644 --- a/src/main/resources/addresources/values-sr-rCS/strings.xml +++ b/src/main/resources/addresources/values-sr-rCS/strings.xml @@ -669,9 +669,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Sakrij oznaku linka Shorts videa Oznaka linka Shorts videa je skrivena Oznaka linka Shorts videa je prikazana - Sakrij dugme za zvuk - Dugme za zvuk je skriveno - Dugme za zvuk je prikazano + Sakrij dugme „Zvuk” + Dugme „Zvuk” je skriveno + Dugme „Zvuk” je prikazano Sakrij traku za navigaciju Traka za navigaciju je skrivena Traka za navigaciju je prikazana @@ -1140,7 +1140,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Lažirani video strimovi Video strimovi su lažirani Video strimovi nisu lažirani\n\nReprodukcija videa možda neće raditi - Isključivanje ovog podešavanja možda će izazvati probleme sa reprodukcijom videa. + Isključivanje ove opcije će možda izazvati probleme sa reprodukcijom videa. Podrazumevani klijent Prisili AVC (H.264) Video kodek je AVC (H.264) @@ -1148,7 +1148,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Vaš uređaj nema VP9 hardversko dekodiranje, i ova opcija je uvek uključena kada je omogućeno lažiranje klijenta Ako ovo omogućite, možda će se produžiti trajanje baterije i popraviti zastoj pri reprodukciji.\n\nAVC ima maksimalnu rezoluciju od 1080p, a reprodukcija videa će koristiti više internet podataka nego VP9 ili AV1. Neželjeni efekti lažiranja na iOS + • Filmovi ili plaćeni videi se možda neće puštati\n• Strimovi uživo počinju od početka\n• Videi će se možda završiti 1 sekundu ranije\n• Nema audio kodeka opus Neželjeni efekti lažiranja na Android VR + • Meni „Audio snimak” nedostaje\n• Opcija „Ujednačena jačina zvuka” nije dostupna diff --git a/src/main/resources/addresources/values-sr-rSP/strings.xml b/src/main/resources/addresources/values-sr-rSP/strings.xml index 545d33b71..df6fe4b63 100644 --- a/src/main/resources/addresources/values-sr-rSP/strings.xml +++ b/src/main/resources/addresources/values-sr-rSP/strings.xml @@ -669,9 +669,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Сакриј ознаку линка Shorts видеа Ознака линка Shorts видеа је скривена Ознака линка Shorts видеа је приказана - Сакриј дугме за звук - Дугме за звук је скривено - Дугме за звук је приказано + Сакриј дугме „Звук” + Дугме „Звук” је скривено + Дугме „Звук” је приказано Сакриј траку за навигацију Трака за навигацију је скривена Трака за навигацију је приказана @@ -1148,7 +1148,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Ваш уређај нема VP9 хардверско декодирање, и ова опција је увек укључена када је омогућено лажирање клијента Ако ово омогућите, можда ће се продужити трајање батерије и поправити застој при репродукцији.\n\nAVC има максималну резолуцију од 1080p, а репродукција видеа ће користити више интернет података него VP9 или AV1. Нежељени ефекти лажирања на iOS + • Филмови или плаћени видеи се можда неће пуштати\n• Стримови уживо почињу од почетка\n• Видеи ће се можда завршити 1 секунду раније\n• Нема аудио кодека opus Нежељени ефекти лажирања на Android VR + • Мени „Аудио снимак” недостаје\n• Опција „Уједначена јачина звука” није доступна diff --git a/src/main/resources/addresources/values-uk-rUA/strings.xml b/src/main/resources/addresources/values-uk-rUA/strings.xml index 2420ee71e..988f95aab 100644 --- a/src/main/resources/addresources/values-uk-rUA/strings.xml +++ b/src/main/resources/addresources/values-uk-rUA/strings.xml @@ -1145,9 +1145,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Примусово увімкнено відеокодек VP9 або AV1 Ваш пристрій не має апаратного декодування VP9, ​​тому це налаштування завжди ввімкнено, коли ввімкнено підробку відеопотоків Увімкнення цієї опції може збільшити час роботи від акумулятора та виправити затримки відтворення.\n\nAVC має максимальну роздільну здатність 1080p, а відтворення відео використовуватиме більше інтернет-даних, ніж на кодеках VP9 або AV1. - Побічні ефекти підміни iOS: + Побічні ефекти підробки iOS: • Фільми чи платні відео можуть не відтворюватися\n• Прямі трансляції починаються з початку\n• Відео можуть закінчуватися на 1 секунду раніше\n• Відсутній аудіокодек Opus - Побічні ефекти підміни Android VR: + Побічні ефекти підробки Android VR: • Меню звукової доріжки відсутнє\n• Меню стабілізації гучності недоступне From 0d4e1f5d03cf3dcc06fd41165e26a1ce901b976b Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Thu, 26 Sep 2024 21:55:14 -0400 Subject: [PATCH 07/24] feat(YouTube - Hide Shorts components): Add patch option to hide Shorts app shortcut (long press app icon) (#3699) Co-authored-by: oSumAtrIX --- .../hide/shorts/HideShortsComponentsPatch.kt | 8 ++++++++ .../shorts/HideShortsComponentsResourcePatch.kt | 16 ++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt index 5b8177383..b87662d86 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt @@ -6,6 +6,7 @@ import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.annotation.CompatiblePackage import app.revanced.patcher.patch.annotation.Patch +import app.revanced.patcher.patch.options.PatchOption.PatchExtensions.booleanPatchOption import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod import app.revanced.patches.shared.misc.mapping.ResourceMappingPatch import app.revanced.patches.youtube.layout.hide.shorts.fingerprints.* @@ -76,6 +77,13 @@ object HideShortsComponentsPatch : BytecodePatch( ) { private const val FILTER_CLASS_DESCRIPTOR = "Lapp/revanced/integrations/youtube/patches/components/ShortsFilter;" + internal val hideShortsAppShortcut by booleanPatchOption( + key = "hideShortsAppShortcut", + default = false, + title = "Hide Shorts app shortcut", + description = "Permanently hides the shortcut to open Shorts from long pressing the app icon in your launcher." + ) + override fun execute(context: BytecodeContext) { // region Hide the Shorts shelf. diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsResourcePatch.kt index 67bd46b55..714fa62d2 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsResourcePatch.kt @@ -6,7 +6,10 @@ import app.revanced.patcher.patch.annotation.Patch import app.revanced.patches.all.misc.resources.AddResourcesPatch import app.revanced.patches.shared.misc.mapping.ResourceMappingPatch import app.revanced.patches.shared.misc.settings.preference.SwitchPreference +import app.revanced.patches.youtube.layout.hide.shorts.HideShortsComponentsPatch.hideShortsAppShortcut import app.revanced.patches.youtube.misc.settings.SettingsPatch +import app.revanced.util.findElementByAttributeValueOrThrow +import org.w3c.dom.Element @Patch(dependencies = [SettingsPatch::class, ResourceMappingPatch::class, AddResourcesPatch::class]) object HideShortsComponentsResourcePatch : ResourcePatch() { @@ -52,6 +55,19 @@ object HideShortsComponentsResourcePatch : ResourcePatch() { SwitchPreference("revanced_hide_shorts_navigation_bar"), ) + if (hideShortsAppShortcut == true) { + context.xmlEditor["res/xml/main_shortcuts.xml"].use { editor -> + val shortcuts = editor.file.getElementsByTagName("shortcuts").item(0) as Element + val shortsItem = + shortcuts.getElementsByTagName("shortcut").findElementByAttributeValueOrThrow( + "android:shortcutId", + "shorts-shortcut" + ) + + shortsItem.parentNode.removeChild(shortsItem) + } + } + reelPlayerRightCellButtonHeight = ResourceMappingPatch[ "dimen", "reel_player_right_cell_button_height", From b79423629493e1692667cc3e1c2a9797b3aa41fc Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Fri, 27 Sep 2024 01:57:13 +0000 Subject: [PATCH 08/24] chore(release): 4.16.0-dev.1 [skip ci] # [4.16.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v4.15.1-dev.2...v4.16.0-dev.1) (2024-09-27) ### Features * **YouTube - Hide Shorts components:** Add patch option to hide Shorts app shortcut (long press app icon) ([#3699](https://github.com/ReVanced/revanced-patches/issues/3699)) ([0d4e1f5](https://github.com/ReVanced/revanced-patches/commit/0d4e1f5d03cf3dcc06fd41165e26a1ce901b976b)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61a81e3a2..cce7ee619 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [4.16.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v4.15.1-dev.2...v4.16.0-dev.1) (2024-09-27) + + +### Features + +* **YouTube - Hide Shorts components:** Add patch option to hide Shorts app shortcut (long press app icon) ([#3699](https://github.com/ReVanced/revanced-patches/issues/3699)) ([0d4e1f5](https://github.com/ReVanced/revanced-patches/commit/0d4e1f5d03cf3dcc06fd41165e26a1ce901b976b)) + ## [4.15.1-dev.2](https://github.com/ReVanced/revanced-patches/compare/v4.15.1-dev.1...v4.15.1-dev.2) (2024-09-23) diff --git a/gradle.properties b/gradle.properties index 78c90f864..b479baea8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 4.15.1-dev.2 +version = 4.16.0-dev.1 From 838f1834a5df547ce2c3217b874c0594b6878a67 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Sat, 28 Sep 2024 17:02:42 -0400 Subject: [PATCH 09/24] feat(YouTube - Hide Shorts components): Add patch option to hide Shorts from app launcher widget Beta (#3707) --- .../hide/shorts/HideShortsComponentsPatch.kt | 9 +++++++- .../HideShortsComponentsResourcePatch.kt | 22 ++++++++++++++----- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt index b87662d86..e1ba72391 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt @@ -81,7 +81,14 @@ object HideShortsComponentsPatch : BytecodePatch( key = "hideShortsAppShortcut", default = false, title = "Hide Shorts app shortcut", - description = "Permanently hides the shortcut to open Shorts from long pressing the app icon in your launcher." + description = "Permanently hides the shortcut to open Shorts when long pressing the app icon in your launcher." + ) + + internal val hideShortsWidget by booleanPatchOption( + key = "hideShortsWidget", + default = false, + title = "Hide Shorts widget", + description = "Permanently hides the launcher widget Shorts button." ) override fun execute(context: BytecodeContext) { diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsResourcePatch.kt index 714fa62d2..a3c58a30b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsResourcePatch.kt @@ -7,6 +7,7 @@ import app.revanced.patches.all.misc.resources.AddResourcesPatch import app.revanced.patches.shared.misc.mapping.ResourceMappingPatch import app.revanced.patches.shared.misc.settings.preference.SwitchPreference import app.revanced.patches.youtube.layout.hide.shorts.HideShortsComponentsPatch.hideShortsAppShortcut +import app.revanced.patches.youtube.layout.hide.shorts.HideShortsComponentsPatch.hideShortsWidget import app.revanced.patches.youtube.misc.settings.SettingsPatch import app.revanced.util.findElementByAttributeValueOrThrow import org.w3c.dom.Element @@ -57,12 +58,21 @@ object HideShortsComponentsResourcePatch : ResourcePatch() { if (hideShortsAppShortcut == true) { context.xmlEditor["res/xml/main_shortcuts.xml"].use { editor -> - val shortcuts = editor.file.getElementsByTagName("shortcuts").item(0) as Element - val shortsItem = - shortcuts.getElementsByTagName("shortcut").findElementByAttributeValueOrThrow( - "android:shortcutId", - "shorts-shortcut" - ) + val shortsItem = editor.file.childNodes.findElementByAttributeValueOrThrow( + "android:shortcutId", + "shorts-shortcut" + ) + + shortsItem.parentNode.removeChild(shortsItem) + } + } + + if (hideShortsWidget == true) { + context.xmlEditor["res/layout/appwidget_two_rows.xml"].use { editor -> + val shortsItem = editor.file.childNodes.findElementByAttributeValueOrThrow( + "android:id", + "@id/button_shorts_container" + ) shortsItem.parentNode.removeChild(shortsItem) } From 7dd80183a921e7c65772f729b88b6831362b52d3 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 28 Sep 2024 21:04:47 +0000 Subject: [PATCH 10/24] chore(release): 4.16.0-dev.2 [skip ci] # [4.16.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.1...v4.16.0-dev.2) (2024-09-28) ### Features * **YouTube - Hide Shorts components:** Add patch option to hide Shorts from app launcher widget Beta ([#3707](https://github.com/ReVanced/revanced-patches/issues/3707)) ([838f183](https://github.com/ReVanced/revanced-patches/commit/838f1834a5df547ce2c3217b874c0594b6878a67)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cce7ee619..309c31225 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [4.16.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.1...v4.16.0-dev.2) (2024-09-28) + + +### Features + +* **YouTube - Hide Shorts components:** Add patch option to hide Shorts from app launcher widget Beta ([#3707](https://github.com/ReVanced/revanced-patches/issues/3707)) ([838f183](https://github.com/ReVanced/revanced-patches/commit/838f1834a5df547ce2c3217b874c0594b6878a67)) + # [4.16.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v4.15.1-dev.2...v4.16.0-dev.1) (2024-09-27) diff --git a/gradle.properties b/gradle.properties index b479baea8..eb249e465 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 4.16.0-dev.1 +version = 4.16.0-dev.2 From a684b1cddb3299028735ab765a959b1725c8a2f6 Mon Sep 17 00:00:00 2001 From: ReVanced Bot Date: Sun, 29 Sep 2024 01:22:19 +0200 Subject: [PATCH 11/24] chore: Sync translations (#3709) --- src/main/resources/addresources/values-de-rDE/strings.xml | 2 ++ src/main/resources/addresources/values-ga-rIE/strings.xml | 2 ++ src/main/resources/addresources/values-ko-rKR/strings.xml | 8 ++++---- src/main/resources/addresources/values-ru-rRU/strings.xml | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/resources/addresources/values-de-rDE/strings.xml b/src/main/resources/addresources/values-de-rDE/strings.xml index d98d7f91e..80036b7b9 100644 --- a/src/main/resources/addresources/values-de-rDE/strings.xml +++ b/src/main/resources/addresources/values-de-rDE/strings.xml @@ -39,6 +39,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Auf einem anderen Gerät gepatcht Nicht von ReVanced Manager installiert Vor mehr als 10 Minuten gepatcht + Vor %s Tagen gepatcht APK-Erstellungsdatum ist beschädigt @@ -1146,6 +1147,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Ihr Gerät hat keine VP9-Hardware-Dekodierung, und diese Einstellung ist immer aktiviert, wenn Client-Spoofing aktiviert ist Das Aktivieren kann die Akkulaufzeit verbessern und die Wiedergabe-Stutting beheben.\n\nAVC hat eine maximale Auflösung von 1080p, und die Videowiedergabe wird mehr Internet-Daten als VP9 oder AV1 verwenden. iOS Spoofing Nebeneffekte + • Filme oder bezahlte Videos werden möglicherweise nicht abgespielt\n• Livestreams starten von Anfang an\n• Videos enden möglicherweise 1 Sekunde früher\n• kein Opus-Audiocodec Android VR Spoofing Nebeneffekte • Audio Track Menü fehlt\n• Stabile Lautstärke ist nicht verfügbar diff --git a/src/main/resources/addresources/values-ga-rIE/strings.xml b/src/main/resources/addresources/values-ga-rIE/strings.xml index 531ef94b4..b888ba710 100644 --- a/src/main/resources/addresources/values-ga-rIE/strings.xml +++ b/src/main/resources/addresources/values-ga-rIE/strings.xml @@ -1146,7 +1146,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Níl díchódú crua-earraí VP9 ar do ghléas, agus bíonn an socrú seo ar siúl i gcónaí nuair atá spoofing Cliant cumasaithe Má dhéantar é seo a chumasú, d\'fhéadfadh sé go bhfeabhsófaí saol na gceallraí agus go n-athshocraigh sé stopáil athsheinm.\n\nTá uas-taifeach 1080p ag AVC, agus úsáidfidh athsheinm físe níos mó sonraí idirlín ná mar a úsáideann VP9 nó AV1. Fo-iarsmaí spoofing iOS + • Ní féidir le scannáin nó físeáin íoctha a sheinm\n• Tosaíonn sruthanna beo ón tús\n• Seans go gcríochnóidh físeáin 1 soicind go luath\n• Gan codec fuaime opus Fo-iarsmaí spoofing Android VR + • Tá roghchlár rian fuaime in easnamh\n• Níl an toirt cobhsaí ar fáil diff --git a/src/main/resources/addresources/values-ko-rKR/strings.xml b/src/main/resources/addresources/values-ko-rKR/strings.xml index 777aa0b36..d9ad621c7 100644 --- a/src/main/resources/addresources/values-ko-rKR/strings.xml +++ b/src/main/resources/addresources/values-ko-rKR/strings.xml @@ -35,8 +35,8 @@ This is because Crowdin requires temporarily flattening this file and removing t 확인에 실패함 공식 홈페이지 열기 - 무시 - <h5>이 앱은 사용자가 패치하지 않은 것 같습니다.</h5><br>이 앱은 제대로 작동하지 않을 수 있으며, <b>사용 시 해롭거나 심지어 위험할 수도 있습니다</b>.<br><br>이러한 확인은 이 앱이 사전 패치되었거나 다른 사람에게서 얻은 것임을 의미합니다:<br><br><small>%1$s</small><br>검증되고 안전한 앱을 사용하고 있는지 확인하려면 <b>이 앱을 제거하고 직접 패치하는 것</b>을 강력히 권장합니다.<p><br>이 경고를 무시하면 두 번만 표시됩니다. + 닫기 + <h5>이 앱은 사용자가 패치하지 않은 것 같습니다.</h5><br>이 앱은 제대로 작동하지 않을 수 있으며, <b>사용 시 해롭거나 심지어 위험할 수도 있습니다</b>.<br><br>이러한 확인은 이 앱이 사전에 패치되었거나 다른 사람으로부터 받은 것임을 의미합니다:<br><br><small>%1$s</small><br>검증되고 안전한 앱을 사용하고 있는지 확인하려면 <b>이 앱을 제거하고 직접 패치하는 것</b>을 강력히 권장합니다.<p><br>이 경고는 두 번만 표시됩니다. 다른 기기에서 패치됨 ReVanced Manager에 의해 설치되지 않음 10분 이상 전에 패치됨 @@ -459,8 +459,8 @@ This is because Crowdin requires temporarily flattening this file and removing t 구독 버튼이 표시됩니다 만들기 버튼과 알림 버튼 위치 교환하기 - 만들기 버튼과 알림 버튼의 위치를 교환합니다\n\n알려진 문제점:\n• 이 설정을 비활성화하면 서버에서 광고 필터에 등록되지 않은 광고(Shorts 광고)가 로드됩니다\n• 이 설정을 활성화하면 일부 광고가 강제로 숨겨집니다 (동영상 광고, 일반 레이아웃 광고)\n• 광고 설정에 있는 일부 설정들을 비활성화하려면 이 설정도 비활성화해야 합니다 - 만들기 버튼과 알림 버튼을 위치를 교환하지 않습니다\n\n알려진 문제점:\n• 이 설정을 비활성화하면 서버에서 광고 필터에 등록되지 않은 광고(Shorts 광고)가 로드됩니다\n• 이 설정을 활성화하면 일부 광고가 강제로 숨겨집니다 (동영상 광고, 일반 레이아웃 광고)\n• 광고 설정에 있는 일부 설정들을 비활성화하려면 이 설정도 비활성화해야 합니다 + 만들기 버튼과 알림 버튼의 위치를 교환합니다\n\n알려진 문제점:\n• 동영상 광고가 강제로 숨겨집니다 + 만들기 버튼과 알림 버튼의 위치를 교환하지 않습니다\n\n알려진 문제점:\n• 서버에서 더 많은 광고가 로드될 수 있습니다\n• Shorts 광고가 더 이상 숨겨지지 않습니다 하단바 버튼 라벨 숨기기 라벨이 숨겨집니다 라벨이 표시됩니다 diff --git a/src/main/resources/addresources/values-ru-rRU/strings.xml b/src/main/resources/addresources/values-ru-rRU/strings.xml index d1e44bd0e..a45a1481f 100644 --- a/src/main/resources/addresources/values-ru-rRU/strings.xml +++ b/src/main/resources/addresources/values-ru-rRU/strings.xml @@ -1147,7 +1147,7 @@ This is because Crowdin requires temporarily flattening this file and removing t На вашем устройстве нет аппаратного декодирования VP9, и эта настройка всегда включена при активной подмене клиента Включение данной настройки может улучшить время работы батареи и исправить задержки воспроизведения.\n\nAVC имеет максимальное разрешение 1080p, воспроизведение видео будет использовать больше интернет данных в сравнении с VP9 или AV1. Побочные эффекты подмены на iOS - • Фильмы или платные видео могут не воспроизводиться.\n• Прямые трансляции начинаются с самого начала.\n• Видео может закончиться на 1 секунду раньше.\n• Отсутствует аудиокодек opus + • Фильмы или платные видео могут не воспроизводиться\n• Прямые трансляции начинаются с самого начала\n• Видео может закончиться на 1 секунду раньше\n• Отсутствует аудиокодек opus Побочные эффекты подмены на Android VR • Пункт меню \"Звуковая дорожка\" отсутствует\n• Пункт меню \"Постоянный уровень громкости\" недоступен From f9e19ce6e9185fdf31b2b0d5f2934f6e8a544b8e Mon Sep 17 00:00:00 2001 From: xob0t <32616886+xob0t@users.noreply.github.com> Date: Sun, 29 Sep 2024 03:22:32 +0300 Subject: [PATCH 12/24] feat(Google Photos): Restore hidden 'Back up while charging' toggle (#3678) Co-authored-by: oSumAtrIX --- api/revanced-patches.api | 6 ++++ ...oreHiddenBackUpWhileChargingTogglePatch.kt | 33 +++++++++++++++++++ .../BackupPreferencesFingerprint.kt | 10 ++++++ 3 files changed, 49 insertions(+) create mode 100644 src/main/kotlin/app/revanced/patches/googlephotos/preferences/RestoreHiddenBackUpWhileChargingTogglePatch.kt create mode 100644 src/main/kotlin/app/revanced/patches/googlephotos/preferences/fingerprints/BackupPreferencesFingerprint.kt diff --git a/api/revanced-patches.api b/api/revanced-patches.api index 8185c9e02..ad04ff075 100644 --- a/api/revanced-patches.api +++ b/api/revanced-patches.api @@ -321,6 +321,12 @@ public final class app/revanced/patches/googlephotos/misc/integrations/Integrati public static final field INSTANCE Lapp/revanced/patches/googlephotos/misc/integrations/IntegrationsPatch; } +public final class app/revanced/patches/googlephotos/preferences/RestoreHiddenBackUpWhileChargingTogglePatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/googlephotos/preferences/RestoreHiddenBackUpWhileChargingTogglePatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + public final class app/revanced/patches/googlerecorder/restrictions/RemoveDeviceRestrictions : app/revanced/patcher/patch/BytecodePatch { public static final field INSTANCE Lapp/revanced/patches/googlerecorder/restrictions/RemoveDeviceRestrictions; public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V diff --git a/src/main/kotlin/app/revanced/patches/googlephotos/preferences/RestoreHiddenBackUpWhileChargingTogglePatch.kt b/src/main/kotlin/app/revanced/patches/googlephotos/preferences/RestoreHiddenBackUpWhileChargingTogglePatch.kt new file mode 100644 index 000000000..0b935afd9 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/googlephotos/preferences/RestoreHiddenBackUpWhileChargingTogglePatch.kt @@ -0,0 +1,33 @@ +package app.revanced.patches.googlephotos.preferences + +import app.revanced.patcher.data.BytecodeContext +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.patch.BytecodePatch +import app.revanced.patcher.patch.annotation.CompatiblePackage +import app.revanced.patcher.patch.annotation.Patch +import app.revanced.patches.googlephotos.preferences.fingerprints.BackupPreferencesFingerprint +import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction + +@Patch( + name = "Restore hidden 'Back up while charging' toggle", + description = "Restores a hidden toggle to only run backups when the device is charging.", + compatiblePackages = [CompatiblePackage("com.google.android.apps.photos")], +) +@Suppress("unused") +object RestoreHiddenBackUpWhileChargingTogglePatch : BytecodePatch( + setOf(BackupPreferencesFingerprint), +) { + override fun execute(context: BytecodeContext) { + // Patches 'backup_prefs_had_backup_only_when_charging_enabled' to always be true. + BackupPreferencesFingerprint.result?.let { + val chargingPrefStringIndex = it.scanResult.stringsScanResult!!.matches.first().index + it.mutableMethod.apply { + // Get the register of move-result. + val resultRegister = getInstruction(chargingPrefStringIndex + 2).registerA + // Insert const after move-result to override register as true. + addInstruction(chargingPrefStringIndex + 3, "const/4 v$resultRegister, 0x1") + } + } ?: throw Exception("BackupPreferencesFingerprint result not found") + } +} diff --git a/src/main/kotlin/app/revanced/patches/googlephotos/preferences/fingerprints/BackupPreferencesFingerprint.kt b/src/main/kotlin/app/revanced/patches/googlephotos/preferences/fingerprints/BackupPreferencesFingerprint.kt new file mode 100644 index 000000000..7d12ed5b0 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/googlephotos/preferences/fingerprints/BackupPreferencesFingerprint.kt @@ -0,0 +1,10 @@ +package app.revanced.patches.googlephotos.preferences.fingerprints + +import app.revanced.patcher.fingerprint.MethodFingerprint + +internal object BackupPreferencesFingerprint : MethodFingerprint( + returnType = "Lcom/google/android/apps/photos/backup/data/BackupPreferences;", + strings = listOf( + "backup_prefs_had_backup_only_when_charging_enabled", + ), +) From 2d203bdab74d68afd12a030b91be994541525a33 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 29 Sep 2024 00:24:39 +0000 Subject: [PATCH 13/24] chore(release): 4.16.0-dev.3 [skip ci] # [4.16.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.2...v4.16.0-dev.3) (2024-09-29) ### Features * **Google Photos:** Restore hidden 'Back up while charging' toggle ([#3678](https://github.com/ReVanced/revanced-patches/issues/3678)) ([f9e19ce](https://github.com/ReVanced/revanced-patches/commit/f9e19ce6e9185fdf31b2b0d5f2934f6e8a544b8e)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 309c31225..a769c63ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [4.16.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.2...v4.16.0-dev.3) (2024-09-29) + + +### Features + +* **Google Photos:** Restore hidden 'Back up while charging' toggle ([#3678](https://github.com/ReVanced/revanced-patches/issues/3678)) ([f9e19ce](https://github.com/ReVanced/revanced-patches/commit/f9e19ce6e9185fdf31b2b0d5f2934f6e8a544b8e)) + # [4.16.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.1...v4.16.0-dev.2) (2024-09-28) diff --git a/gradle.properties b/gradle.properties index eb249e465..26085aca2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 4.16.0-dev.2 +version = 4.16.0-dev.3 From 099ac5ea2cf55633a7c6a7e6f8e963599bcd5784 Mon Sep 17 00:00:00 2001 From: FullerBread2032 <56510855+FullerBread2032@users.noreply.github.com> Date: Sun, 29 Sep 2024 02:25:56 +0200 Subject: [PATCH 14/24] fix(Soundcloud): Support latest versions (#3702) --- .../soundcloud/ad/fingerprints/InterceptFingerprint.kt | 4 ---- .../UserConsumerPlanConstructorFingerprint.kt | 3 --- .../fingerprints/CreateTrackingApiFingerprint.kt | 3 ++- .../DownloadOperationsHeaderVerificationFingerprint.kt | 4 +--- .../DownloadOperationsURLBuilderFingerprint.kt | 3 --- .../fingerprints/FeatureConstructorFingerprint.kt | 10 +++++++--- 6 files changed, 10 insertions(+), 17 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/soundcloud/ad/fingerprints/InterceptFingerprint.kt b/src/main/kotlin/app/revanced/patches/soundcloud/ad/fingerprints/InterceptFingerprint.kt index d38975357..bc183573c 100644 --- a/src/main/kotlin/app/revanced/patches/soundcloud/ad/fingerprints/InterceptFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/soundcloud/ad/fingerprints/InterceptFingerprint.kt @@ -14,8 +14,4 @@ internal object InterceptFingerprint : MethodFingerprint( Opcode.MOVE_RESULT_OBJECT ), strings = listOf("SC-Mob-UserPlan", "Configuration"), - customFingerprint = { _, classDef -> - classDef.sourceFile == "ApiUserPlanInterceptor.java" || - classDef.sourceFile == "ApiUserPlanInterceptor.kt" - }, ) diff --git a/src/main/kotlin/app/revanced/patches/soundcloud/ad/fingerprints/UserConsumerPlanConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/soundcloud/ad/fingerprints/UserConsumerPlanConstructorFingerprint.kt index 0a238be56..0abe74043 100644 --- a/src/main/kotlin/app/revanced/patches/soundcloud/ad/fingerprints/UserConsumerPlanConstructorFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/soundcloud/ad/fingerprints/UserConsumerPlanConstructorFingerprint.kt @@ -8,7 +8,4 @@ internal object UserConsumerPlanConstructorFingerprint : MethodFingerprint( returnType = "V", accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, parameters = listOf("Ljava/lang/String;", "Z", "Ljava/lang/String;", "Ljava/util/List;", "Ljava/lang/String;", "Ljava/lang/String;"), - customFingerprint = { _, classDef -> - classDef.sourceFile == "UserConsumerPlan.kt" - }, ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/soundcloud/analytics/fingerprints/CreateTrackingApiFingerprint.kt b/src/main/kotlin/app/revanced/patches/soundcloud/analytics/fingerprints/CreateTrackingApiFingerprint.kt index f305591d2..993ba1afd 100644 --- a/src/main/kotlin/app/revanced/patches/soundcloud/analytics/fingerprints/CreateTrackingApiFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/soundcloud/analytics/fingerprints/CreateTrackingApiFingerprint.kt @@ -7,6 +7,7 @@ internal object CreateTrackingApiFingerprint : MethodFingerprint( returnType = "L", accessFlags = AccessFlags.PUBLIC.value, customFingerprint = { methodDef, classDef -> - classDef.sourceFile == "DefaultTrackingApiFactory.kt" && methodDef.name == "create" + methodDef.name == "create" }, + strings = listOf("backend", "boogaloo") ) diff --git a/src/main/kotlin/app/revanced/patches/soundcloud/offlinesync/fingerprints/DownloadOperationsHeaderVerificationFingerprint.kt b/src/main/kotlin/app/revanced/patches/soundcloud/offlinesync/fingerprints/DownloadOperationsHeaderVerificationFingerprint.kt index e3629c788..1721c4feb 100644 --- a/src/main/kotlin/app/revanced/patches/soundcloud/offlinesync/fingerprints/DownloadOperationsHeaderVerificationFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/soundcloud/offlinesync/fingerprints/DownloadOperationsHeaderVerificationFingerprint.kt @@ -15,7 +15,5 @@ internal object DownloadOperationsHeaderVerificationFingerprint : MethodFingerpr Opcode.MOVE_RESULT_OBJECT, Opcode.CONST_STRING ), - customFingerprint = { _, classDef -> - classDef.sourceFile == "DownloadOperations.kt" - } + strings = listOf("X-SC-Mime-Type", "X-SC-Preset", "X-SC-Quality") ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/soundcloud/offlinesync/fingerprints/DownloadOperationsURLBuilderFingerprint.kt b/src/main/kotlin/app/revanced/patches/soundcloud/offlinesync/fingerprints/DownloadOperationsURLBuilderFingerprint.kt index 5394658e5..4d7ffa0c6 100644 --- a/src/main/kotlin/app/revanced/patches/soundcloud/offlinesync/fingerprints/DownloadOperationsURLBuilderFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/soundcloud/offlinesync/fingerprints/DownloadOperationsURLBuilderFingerprint.kt @@ -14,7 +14,4 @@ internal object DownloadOperationsURLBuilderFingerprint : MethodFingerprint( Opcode.SGET_OBJECT, Opcode.FILLED_NEW_ARRAY ), - customFingerprint = { _, classDef -> - classDef.sourceFile == "DownloadOperations.kt" - } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/soundcloud/shared/fingerprints/FeatureConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/soundcloud/shared/fingerprints/FeatureConstructorFingerprint.kt index 6506ebab2..0ee4292c3 100644 --- a/src/main/kotlin/app/revanced/patches/soundcloud/shared/fingerprints/FeatureConstructorFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/soundcloud/shared/fingerprints/FeatureConstructorFingerprint.kt @@ -3,12 +3,16 @@ package app.revanced.patches.soundcloud.shared.fingerprints import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.MethodFingerprint import com.android.tools.smali.dexlib2.AccessFlags +import com.android.tools.smali.dexlib2.Opcode + internal object FeatureConstructorFingerprint : MethodFingerprint( returnType = "V", accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, parameters = listOf("Ljava/lang/String;", "Z", "Ljava/util/List;"), - customFingerprint = { _, classDef -> - classDef.sourceFile == "Feature.kt" - }, + opcodes = listOf( + Opcode.SGET_OBJECT, + Opcode.CHECK_CAST, + Opcode.INVOKE_VIRTUAL + ) ) \ No newline at end of file From 84f6d12185fbcf3bacce1e09fccee6836bfc5263 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 29 Sep 2024 00:27:59 +0000 Subject: [PATCH 15/24] chore(release): 4.16.0-dev.4 [skip ci] # [4.16.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.3...v4.16.0-dev.4) (2024-09-29) ### Bug Fixes * **Soundcloud:** Support latest versions ([#3702](https://github.com/ReVanced/revanced-patches/issues/3702)) ([099ac5e](https://github.com/ReVanced/revanced-patches/commit/099ac5ea2cf55633a7c6a7e6f8e963599bcd5784)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a769c63ad..efb82b947 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [4.16.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.3...v4.16.0-dev.4) (2024-09-29) + + +### Bug Fixes + +* **Soundcloud:** Support latest versions ([#3702](https://github.com/ReVanced/revanced-patches/issues/3702)) ([099ac5e](https://github.com/ReVanced/revanced-patches/commit/099ac5ea2cf55633a7c6a7e6f8e963599bcd5784)) + # [4.16.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.2...v4.16.0-dev.3) (2024-09-29) diff --git a/gradle.properties b/gradle.properties index 26085aca2..ff6e100d1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 4.16.0-dev.3 +version = 4.16.0-dev.4 From 3fa8af9fe534b59ad093c36f1927f56f549a330d Mon Sep 17 00:00:00 2001 From: Zain Date: Sun, 29 Sep 2024 07:32:17 +0700 Subject: [PATCH 16/24] feat(YouTube - Disable precise seeking gesture): Hide "pull up" label that shows up when swiping (#3668) Co-authored-by: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Co-authored-by: oSumAtrIX --- .../DisablePreciseSeekingGesturePatch.kt | 61 ++++++++++++------- .../AllowSwipingUpGestureFingerprint.kt | 14 +++++ .../fingerprints/IsSwipingUpFingerprint.kt | 13 ---- .../ShowSwipingUpGuideFingerprint.kt | 14 +++++ .../SwipingUpGestureParentFingerprint.kt | 12 ++++ 5 files changed, 80 insertions(+), 34 deletions(-) create mode 100644 src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/AllowSwipingUpGestureFingerprint.kt delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/IsSwipingUpFingerprint.kt create mode 100644 src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/ShowSwipingUpGuideFingerprint.kt create mode 100644 src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/SwipingUpGestureParentFingerprint.kt diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/DisablePreciseSeekingGesturePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/DisablePreciseSeekingGesturePatch.kt index 4923a6c4e..dd3a07ae7 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/DisablePreciseSeekingGesturePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/DisablePreciseSeekingGesturePatch.kt @@ -1,18 +1,20 @@ package app.revanced.patches.youtube.interaction.seekbar import app.revanced.patcher.data.BytecodeContext +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels import app.revanced.patcher.extensions.InstructionExtensions.getInstruction -import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.annotation.CompatiblePackage import app.revanced.patcher.patch.annotation.Patch +import app.revanced.patcher.util.smali.ExternalLabel import app.revanced.patches.all.misc.resources.AddResourcesPatch import app.revanced.patches.shared.misc.settings.preference.SwitchPreference -import app.revanced.patches.youtube.interaction.seekbar.fingerprints.IsSwipingUpFingerprint +import app.revanced.patches.youtube.interaction.seekbar.fingerprints.AllowSwipingUpGestureFingerprint +import app.revanced.patches.youtube.interaction.seekbar.fingerprints.ShowSwipingUpGuideFingerprint +import app.revanced.patches.youtube.interaction.seekbar.fingerprints.SwipingUpGestureParentFingerprint import app.revanced.patches.youtube.misc.integrations.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.SettingsPatch -import app.revanced.util.exception -import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction +import app.revanced.util.alsoResolve @Patch( name = "Disable precise seeking gesture", @@ -52,11 +54,10 @@ import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction ) @Suppress("unused") object DisablePreciseSeekingGesturePatch : BytecodePatch( - setOf(IsSwipingUpFingerprint) + setOf(SwipingUpGestureParentFingerprint) ) { - private const val INTEGRATIONS_METHOD_DESCRIPTOR = - "Lapp/revanced/integrations/youtube/patches/DisablePreciseSeekingGesturePatch;->" + - "disableGesture(Landroid/view/VelocityTracker;Landroid/view/MotionEvent;)V" + private const val INTEGRATIONS_CLASS_DESCRIPTOR = + "Lapp/revanced/integrations/youtube/patches/DisablePreciseSeekingGesturePatch;" override fun execute(context: BytecodeContext) { AddResourcesPatch(this::class) @@ -65,19 +66,37 @@ object DisablePreciseSeekingGesturePatch : BytecodePatch( SwitchPreference("revanced_disable_precise_seeking_gesture") ) - IsSwipingUpFingerprint.result?.let { - val addMovementIndex = it.scanResult.patternScanResult!!.startIndex - 1 + AllowSwipingUpGestureFingerprint.alsoResolve( + context, + SwipingUpGestureParentFingerprint + ).mutableMethod.apply { + addInstructionsWithLabels( + 0, + """ + invoke-static { }, $INTEGRATIONS_CLASS_DESCRIPTOR->isGestureDisabled()Z + move-result v0 + if-eqz v0, :disabled + return-void + """, + ExternalLabel("disabled", getInstruction(0)) + ) + } - it.mutableMethod.apply { - val addMovementInstruction = getInstruction(addMovementIndex) - val trackerRegister = addMovementInstruction.registerC - val eventRegister = addMovementInstruction.registerD - - replaceInstruction( - addMovementIndex, - "invoke-static {v$trackerRegister, v$eventRegister}, $INTEGRATIONS_METHOD_DESCRIPTOR" - ) - } - } ?: throw IsSwipingUpFingerprint.exception + ShowSwipingUpGuideFingerprint.alsoResolve( + context, + SwipingUpGestureParentFingerprint + ).mutableMethod.apply { + addInstructionsWithLabels( + 0, + """ + invoke-static { }, $INTEGRATIONS_CLASS_DESCRIPTOR->isGestureDisabled()Z + move-result v0 + if-eqz v0, :disabled + const/4 v0, 0x0 + return v0 + """, + ExternalLabel("disabled", getInstruction(0)) + ) + } } } \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/AllowSwipingUpGestureFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/AllowSwipingUpGestureFingerprint.kt new file mode 100644 index 000000000..1f92a7275 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/AllowSwipingUpGestureFingerprint.kt @@ -0,0 +1,14 @@ +package app.revanced.patches.youtube.interaction.seekbar.fingerprints + +import app.revanced.patcher.extensions.or +import app.revanced.patcher.fingerprint.MethodFingerprint +import com.android.tools.smali.dexlib2.AccessFlags + +/** + * Resolves using the class found in [SwipingUpGestureParentFingerprint]. + */ +internal object AllowSwipingUpGestureFingerprint : MethodFingerprint( + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, + returnType = "V", + parameters = listOf("L"), +) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/IsSwipingUpFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/IsSwipingUpFingerprint.kt deleted file mode 100644 index 3029925ad..000000000 --- a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/IsSwipingUpFingerprint.kt +++ /dev/null @@ -1,13 +0,0 @@ -package app.revanced.patches.youtube.interaction.seekbar.fingerprints - -import app.revanced.patcher.fingerprint.MethodFingerprint -import com.android.tools.smali.dexlib2.Opcode - -internal object IsSwipingUpFingerprint : MethodFingerprint( - returnType = "Z", - parameters = listOf("Landroid/view/MotionEvent;", "J"), - opcodes = listOf( - Opcode.SGET_OBJECT, - Opcode.IGET_OBJECT - ) -) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/ShowSwipingUpGuideFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/ShowSwipingUpGuideFingerprint.kt new file mode 100644 index 000000000..5a8ac9eed --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/ShowSwipingUpGuideFingerprint.kt @@ -0,0 +1,14 @@ +package app.revanced.patches.youtube.interaction.seekbar.fingerprints + +import app.revanced.util.patch.LiteralValueFingerprint +import com.android.tools.smali.dexlib2.AccessFlags + +/** + * Resolves using the class found in [SwipingUpGestureParentFingerprint]. + */ +internal object ShowSwipingUpGuideFingerprint : LiteralValueFingerprint( + accessFlags = AccessFlags.FINAL.value, + returnType = "Z", + parameters = emptyList(), + literalSupplier = { 1L } +) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/SwipingUpGestureParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/SwipingUpGestureParentFingerprint.kt new file mode 100644 index 000000000..cb33e72a2 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/SwipingUpGestureParentFingerprint.kt @@ -0,0 +1,12 @@ +package app.revanced.patches.youtube.interaction.seekbar.fingerprints + +import app.revanced.patcher.extensions.or +import app.revanced.util.patch.LiteralValueFingerprint +import com.android.tools.smali.dexlib2.AccessFlags + +internal object SwipingUpGestureParentFingerprint : LiteralValueFingerprint( + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, + returnType = "Z", + parameters = listOf(), + literalSupplier = { 45379021 } +) \ No newline at end of file From 02bc0949f16478ec71c7a14b80cbf49714132008 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 29 Sep 2024 00:34:19 +0000 Subject: [PATCH 17/24] chore(release): 4.16.0-dev.5 [skip ci] # [4.16.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.4...v4.16.0-dev.5) (2024-09-29) ### Features * **YouTube - Disable precise seeking gesture:** Hide "pull up" label that shows up when swiping ([#3668](https://github.com/ReVanced/revanced-patches/issues/3668)) ([3fa8af9](https://github.com/ReVanced/revanced-patches/commit/3fa8af9fe534b59ad093c36f1927f56f549a330d)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index efb82b947..cc6eae006 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [4.16.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.4...v4.16.0-dev.5) (2024-09-29) + + +### Features + +* **YouTube - Disable precise seeking gesture:** Hide "pull up" label that shows up when swiping ([#3668](https://github.com/ReVanced/revanced-patches/issues/3668)) ([3fa8af9](https://github.com/ReVanced/revanced-patches/commit/3fa8af9fe534b59ad093c36f1927f56f549a330d)) + # [4.16.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.3...v4.16.0-dev.4) (2024-09-29) diff --git a/gradle.properties b/gradle.properties index ff6e100d1..75064dc79 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 4.16.0-dev.4 +version = 4.16.0-dev.5 From 8c99321df4db696156330fc90dd547c1345d880e Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Sat, 28 Sep 2024 21:02:56 -0400 Subject: [PATCH 18/24] feat(YouTube - Hide Shorts components): Add `Hide save music`, `Hide stickers` (#3710) --- .../hide/shorts/HideShortsComponentsResourcePatch.kt | 3 +-- src/main/resources/addresources/values/strings.xml | 12 ++++++------ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsResourcePatch.kt index a3c58a30b..c3ce3a0cc 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsResourcePatch.kt @@ -10,7 +10,6 @@ import app.revanced.patches.youtube.layout.hide.shorts.HideShortsComponentsPatch import app.revanced.patches.youtube.layout.hide.shorts.HideShortsComponentsPatch.hideShortsWidget import app.revanced.patches.youtube.misc.settings.SettingsPatch import app.revanced.util.findElementByAttributeValueOrThrow -import org.w3c.dom.Element @Patch(dependencies = [SettingsPatch::class, ResourceMappingPatch::class, AddResourcesPatch::class]) object HideShortsComponentsResourcePatch : ResourcePatch() { @@ -42,9 +41,9 @@ object HideShortsComponentsResourcePatch : ResourcePatch() { SwitchPreference("revanced_hide_shorts_subscribe_button"), SwitchPreference("revanced_hide_shorts_paused_overlay_buttons"), SwitchPreference("revanced_hide_shorts_save_sound_button"), - SwitchPreference("revanced_hide_shorts_use_this_sound_button"), SwitchPreference("revanced_hide_shorts_shop_button"), SwitchPreference("revanced_hide_shorts_tagged_products"), + SwitchPreference("revanced_hide_shorts_stickers"), SwitchPreference("revanced_hide_shorts_search_suggestions"), SwitchPreference("revanced_hide_shorts_super_thanks_button"), SwitchPreference("revanced_hide_shorts_location_label"), diff --git a/src/main/resources/addresources/values/strings.xml b/src/main/resources/addresources/values/strings.xml index 49520bf00..c9dc87f33 100644 --- a/src/main/resources/addresources/values/strings.xml +++ b/src/main/resources/addresources/values/strings.xml @@ -628,15 +628,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Hide location label Location label is hidden Location label is shown - Hide save sound to playlist button - Save sound to playlist is hidden - Save sound to playlist is shown - Hide use this sound button - Use this sound button is hidden - Use this sound button is shown + Hide save music button + Save music is hidden + Save music is shown Hide search suggestions Search suggestions are hidden Search suggestions are shown + Hide stickers + Stickers are hidden + Stickers are shown Hide like button Like button is hidden Like button is shown From ca0550bb243a08a783a0e402e870116b0bfcf619 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 29 Sep 2024 01:05:21 +0000 Subject: [PATCH 19/24] chore(release): 4.16.0-dev.6 [skip ci] # [4.16.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.5...v4.16.0-dev.6) (2024-09-29) ### Features * **YouTube - Hide Shorts components:** Add `Hide save music`, `Hide stickers` ([#3710](https://github.com/ReVanced/revanced-patches/issues/3710)) ([8c99321](https://github.com/ReVanced/revanced-patches/commit/8c99321df4db696156330fc90dd547c1345d880e)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc6eae006..37ac3ac56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [4.16.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.5...v4.16.0-dev.6) (2024-09-29) + + +### Features + +* **YouTube - Hide Shorts components:** Add `Hide save music`, `Hide stickers` ([#3710](https://github.com/ReVanced/revanced-patches/issues/3710)) ([8c99321](https://github.com/ReVanced/revanced-patches/commit/8c99321df4db696156330fc90dd547c1345d880e)) + # [4.16.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.4...v4.16.0-dev.5) (2024-09-29) diff --git a/gradle.properties b/gradle.properties index 75064dc79..c7db1a71e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 4.16.0-dev.5 +version = 4.16.0-dev.6 From 7272ad91f3a9d8c5a7786ee71f309be630b56536 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Sat, 28 Sep 2024 21:28:55 -0400 Subject: [PATCH 20/24] chore(YouTube - Hide layout components): Move `Hide chips shelf` to general as it also appears in the feed --- .../layout/hide/general/HideLayoutComponentsPatch.kt | 2 +- src/main/resources/addresources/values/strings.xml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt index bff904da0..a505497b1 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt @@ -89,7 +89,6 @@ object HideLayoutComponentsPatch : BytecodePatch( SwitchPreference("revanced_hide_channel_guidelines"), SwitchPreference("revanced_hide_channel_member_shelf"), SwitchPreference("revanced_hide_channel_watermark"), - SwitchPreference("revanced_hide_chips_shelf"), SwitchPreference("revanced_hide_community_guidelines"), PreferenceScreen( key = "revanced_hide_description_components_screen", @@ -145,6 +144,7 @@ object HideLayoutComponentsPatch : BytecodePatch( ) SettingsPatch.PreferenceScreen.GENERAL_LAYOUT.addPreferences( + SwitchPreference("revanced_hide_chips_shelf"), SwitchPreference("revanced_hide_expandable_chip"), SwitchPreference("revanced_hide_gray_separator"), PreferenceScreen( diff --git a/src/main/resources/addresources/values/strings.xml b/src/main/resources/addresources/values/strings.xml index c9dc87f33..f181a93d1 100644 --- a/src/main/resources/addresources/values/strings.xml +++ b/src/main/resources/addresources/values/strings.xml @@ -148,6 +148,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Hide channel guidelines Channel guidelines are hidden Channel guidelines are shown + Hide chips shelf + Chips shelf is hidden + Chips shelf is shown Hide expandable chip under videos Expandable chips are hidden Expandable chips are shown @@ -208,9 +211,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Hide artist cards Artist cards are hidden Artist cards are shown - Hide chips shelf - Chips shelf is hidden - Chips shelf is shown Hide attributes section \'Featured places\', Games and Music sections are hidden \'Featured places\', Games and Music sections are shown From 5e5a55f6af8e25f487cc53946ac278b68712940e Mon Sep 17 00:00:00 2001 From: ReVanced Bot Date: Sun, 29 Sep 2024 23:13:04 +0200 Subject: [PATCH 21/24] chore: Sync translations (#3720) --- .../addresources/values-ar-rSA/strings.xml | 18 +- .../addresources/values-az-rAZ/strings.xml | 12 +- .../addresources/values-be-rBY/strings.xml | 9 +- .../addresources/values-bg-rBG/strings.xml | 12 +- .../addresources/values-bn-rBD/strings.xml | 9 +- .../addresources/values-cs-rCZ/strings.xml | 18 +- .../addresources/values-da-rDK/strings.xml | 18 +- .../addresources/values-de-rDE/strings.xml | 18 +- .../addresources/values-el-rGR/strings.xml | 18 +- .../addresources/values-es-rES/strings.xml | 18 +- .../addresources/values-fi-rFI/strings.xml | 807 +++++++++--------- .../addresources/values-fil-rPH/strings.xml | 9 +- .../addresources/values-fr-rFR/strings.xml | 18 +- .../addresources/values-ga-rIE/strings.xml | 12 +- .../addresources/values-hu-rHU/strings.xml | 12 +- .../addresources/values-in-rID/strings.xml | 18 +- .../addresources/values-it-rIT/strings.xml | 18 +- .../addresources/values-ja-rJP/strings.xml | 18 +- .../addresources/values-ko-rKR/strings.xml | 18 +- .../addresources/values-nb-rNO/strings.xml | 18 +- .../addresources/values-nl-rNL/strings.xml | 18 +- .../addresources/values-pl-rPL/strings.xml | 18 +- .../addresources/values-pt-rBR/strings.xml | 12 +- .../addresources/values-pt-rPT/strings.xml | 18 +- .../addresources/values-ro-rRO/strings.xml | 18 +- .../addresources/values-ru-rRU/strings.xml | 18 +- .../addresources/values-sk-rSK/strings.xml | 9 +- .../addresources/values-sr-rCS/strings.xml | 12 +- .../addresources/values-sr-rSP/strings.xml | 12 +- .../addresources/values-sv-rSE/strings.xml | 18 +- .../addresources/values-tr-rTR/strings.xml | 18 +- .../addresources/values-uk-rUA/strings.xml | 12 +- .../addresources/values-vi-rVN/strings.xml | 12 +- .../addresources/values-zh-rCN/strings.xml | 18 +- .../addresources/values-zh-rTW/strings.xml | 34 +- 35 files changed, 643 insertions(+), 702 deletions(-) diff --git a/src/main/resources/addresources/values-ar-rSA/strings.xml b/src/main/resources/addresources/values-ar-rSA/strings.xml index 28fc89111..caa61bed6 100644 --- a/src/main/resources/addresources/values-ar-rSA/strings.xml +++ b/src/main/resources/addresources/values-ar-rSA/strings.xml @@ -147,6 +147,9 @@ This is because Crowdin requires temporarily flattening this file and removing t إخفاء إرشادات القناة تم إخفاء إرشادات القناة يتم عرض إرشادات القناة + إخفاء رف الشرائح + تم إخفاء رف الشرائح + يتم عرض رف الشرائح إخفاء الشريحة القابلة للتوسيع تحت مقاطع الفيديو تم إخفاء الرقائق القابلة للتوسيع يتم عرض الرقائق القابلة للتوسيع @@ -207,9 +210,6 @@ This is because Crowdin requires temporarily flattening this file and removing t إخفاء بطاقات الفنان تم إخفاء بطاقات الفنان يتم عرض بطاقات الفنان - إخفاء رف الشرائح - تم إخفاء رف الشرائح - يتم عرض رف الشرائح إخفاء قسم الصفات تم إخفاء \'الأماكن المميزة\'، أقسام الألعاب والموسيقى يتم عرض \'الأماكن المميزة\'، أقسام الألعاب والموسيقى @@ -627,15 +627,15 @@ This is because Crowdin requires temporarily flattening this file and removing t إخفاء تسمية الموقع تم إخفاء تسمية الموقع يتم عرض تسمية الموقع - إخفاء حفظ الصوت إلى زر قائمة التشغيل - تم إخفاء حفظ الصوت في قائمة التشغيل - يتم عرض حفظ الصوت في قائمة التشغيل - إخفاء زر استخدام هذا الصوت - تم إخفاء زر استخدام هذا الصوت - يتم عرض زر استخدام هذا الصوت + إخفاء زر حفظ الموسيقى + حفظ الموسيقى مخفية + حفظ الموسيقى يظهر إخفاء اقتراحات البحث تم إخفاء اقتراحات البحث يتم عرض اقتراحات البحث + إخفاء الملصقات + الملصقات مخفية + يتم عرض الملصقات إخفاء زر أعجبني تم إخفاء زر أعجبني يتم عرض زر أعجبني diff --git a/src/main/resources/addresources/values-az-rAZ/strings.xml b/src/main/resources/addresources/values-az-rAZ/strings.xml index 94d0a79d7..5ea12136d 100644 --- a/src/main/resources/addresources/values-az-rAZ/strings.xml +++ b/src/main/resources/addresources/values-az-rAZ/strings.xml @@ -147,6 +147,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Kanal təlimatlarını gizlət Kanal təlimatları gizlidir Kanal təlimatları göstərilir + Çip bölməsin gizlət + Çip bölməsi gizlidir + Çip bölməsi göstərilir Videoların altında genişlənən çipi gizlət Genişlənən çiplər gizlidir Genişlənən çiplər göstərilir @@ -207,9 +210,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Sənətçi kartlarını gizlət Sənətçi kartları gizlidir Sənətçi kartları göstərilir - Çip bölməsin gizlət - Çip bölməsi gizlidir - Çip bölməsi göstərilir Atributlar bölməsini gizlət \"Seçilən məkanlar\", Oyunlar və Musiqi bölmələri gizlidir \"Seçilən məkanlar\", Oyunlar və Musiqi bölmələri göstərilir @@ -627,12 +627,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Məkan etiketini gizlət Məkan etiketi gizlidir Məkan etiketi göstərilir - Səsi pleylistdə saxlama düyməsini gizlət - Səsi pleylistdə saxlama gizlidir - Səsi pleylistdə saxlama göstərilir - \"Bu səsi istifadə et\" düyməsini gizlət - \"Bu səsi istifadə et\" düyməsi gizlidir - \"Bu səsi istifadə et\" düyməsi göstərilir Axtarış təkliflərini gizlət Axtarış təklifləri gizlədilib Axtarış təklifləri göstərilir diff --git a/src/main/resources/addresources/values-be-rBY/strings.xml b/src/main/resources/addresources/values-be-rBY/strings.xml index 9a32f79b3..5215f5282 100644 --- a/src/main/resources/addresources/values-be-rBY/strings.xml +++ b/src/main/resources/addresources/values-be-rBY/strings.xml @@ -137,6 +137,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Схаваць рэкамендацыі канала Правілы канала схаваны Паказваюцца інструкцыі па каналах + Схавайце паліцу для чыпсаў + Паліца для чыпсаў схаваная + Паказана паліца для чыпсаў Схаваць пашыраемы чып пад відэа Чыпы, якія пашыраюцца, схаваныя Паказаны чыпы, якія пашыраюцца @@ -197,9 +200,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Схаваць карткі выканаўцаў Карткі выканаўцаў схаваныя Паказваюцца карткі выканаўцаў - Схавайце паліцу для чыпсаў - Паліца для чыпсаў схаваная - Паказана паліца для чыпсаў Схаваць раздзел атрыбутаў Раздзелы \"Выбраныя месцы\", гульні і музыка схаваны Паказваюцца раздзелы \"Выбраныя месцы\", Гульні і Музыка @@ -608,9 +608,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Схаваць метку месцазнаходжання Метка месцазнаходжання схавана Паказана метка месцазнаходжання - Схаваць кнопку захавання гуку ў спіс прайгравання - Захаваць гук у плэйліст схавана - Паказваецца Захаваць гук у спіс прайгравання Схаваць прапановы пошуку Пошукавыя прапановы схаваны Паказваюцца прапановы пошуку diff --git a/src/main/resources/addresources/values-bg-rBG/strings.xml b/src/main/resources/addresources/values-bg-rBG/strings.xml index 3dd249075..50bacde86 100644 --- a/src/main/resources/addresources/values-bg-rBG/strings.xml +++ b/src/main/resources/addresources/values-bg-rBG/strings.xml @@ -147,6 +147,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Скриване на насоките на канала Насоките на канала са скрити Насоките на канала са показани + Скриване на рафта за чипове + Рафтът за чипове е скрит + Рафтът за чипове е показан Скриване на разширяемия чип под видеоклиповете Разширяващите се чипове са скрити Разширяващите се чипове са показани @@ -207,9 +210,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Скриване на картите на артистите Картите на артистите са скрити Картите на артистите са показани - Скриване на рафта за чипове - Рафтът за чипове е скрит - Рафтът за чипове е показан Скриване на секцията с атрибути „Популярни места“, „Игри“ и „Музика“ под описанието са скрити „Популярни места“, „Игри“ и „Музика“ под описанието се показват @@ -627,12 +627,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Етикет за местоположение Етикет за местоположение е скрит Етикет за местоположение се показва - Бутон за запазване на аудиото в плейлиста - Бутонът за Запазване в плейлиста е скрит - Бутонът за Запазване в плейлиста се показва - Бутон „Използване на този звук“ - Бутон „Използване на този звук“ е скрит - Бутон „Използване на този звук“ се показва Скриване на предложенията за търсене Предложенията за търсене са скрити Предложенията за търсене се показват diff --git a/src/main/resources/addresources/values-bn-rBD/strings.xml b/src/main/resources/addresources/values-bn-rBD/strings.xml index 3a9fd6c26..a6fbeb5e8 100644 --- a/src/main/resources/addresources/values-bn-rBD/strings.xml +++ b/src/main/resources/addresources/values-bn-rBD/strings.xml @@ -137,6 +137,9 @@ This is because Crowdin requires temporarily flattening this file and removing t চ্যানেল নির্দেশিকা লুকান চ্যানেল নির্দেশিকা লুকিয়ে রয়েছে চ্যানেল নির্দেশিকা প্রদর্শিত হয়েছে + চিপ শেলপ লুকান + চিপ শেলপ লুকিয়ে রয়েছে + চিপ শেলপ প্রদর্শিত হয়েছে ভিডিওর নিচের সম্প্রসারণযোগ্য চিপস লুকান সম্প্রসারণযোগ্য চিপস লুকিয়ে রয়েছে সম্প্রসারণযোগ্য চিপস প্রদর্শিত হয়েছে @@ -197,9 +200,6 @@ This is because Crowdin requires temporarily flattening this file and removing t আর্টিস্ট কার্ড লুকান আর্টিস্ট কার্ড লুকিয়ে রয়েছে আর্টিস্ট কার্ড প্রদর্শিত হয়েছে - চিপ শেলপ লুকান - চিপ শেলপ লুকিয়ে রয়েছে - চিপ শেলপ প্রদর্শিত হয়েছে বৈশিষ্ট্য বিভাগ লুকান \'বৈশিষ্ট্যযুক্ত স্থান\', গেম এবং সঙ্গীত বিভাগগুলি লুকানো আছে \'বৈশিষ্ট্যযুক্ত স্থান\', গেম এবং সঙ্গীত বিভাগগুলি প্রদর্শিত হয়েছে @@ -535,9 +535,6 @@ This is because Crowdin requires temporarily flattening this file and removing t অবস্থান লেবেল লুকান অবস্থান লেবেল লুকিয়ে রয়েছে অবস্থান লেবেল প্রদর্শিত হয়েছে - প্লেলিস্টে সাউন্ড সংরক্ষণ করুন বোতাম লুকান - প্লেলিস্টে সাউন্ড সংরক্ষণ করুন বোতাম লুকিয়ে রয়েছে - প্লেলিস্টে সাউন্ড সংরক্ষণ করুন বোতাম প্রদর্শিত হয়েছে অনুসন্ধান পরামর্শগুলি লুকান অনুসন্ধান পরামর্শগুলি লুকিয়ে রয়েছে অনুসন্ধান পরামর্শগুলি প্রদর্শিত হয়েছে diff --git a/src/main/resources/addresources/values-cs-rCZ/strings.xml b/src/main/resources/addresources/values-cs-rCZ/strings.xml index f4a1b5e3b..bad36679a 100644 --- a/src/main/resources/addresources/values-cs-rCZ/strings.xml +++ b/src/main/resources/addresources/values-cs-rCZ/strings.xml @@ -148,6 +148,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Skrýt pokyny pro kanály Pokyny kanálu jsou skryty Jsou zobrazeny pokyny kanálu + Skrýt čipy + Šipka je skrytá + Šipky jsou zobrazeny Skrýt rozšiřitelný čip pod videem Rozšiřitelné čipy jsou skryty Jsou zobrazeny rozšiřitelné čipy @@ -208,9 +211,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Skrýt karty umělce Karty umělců jsou skryty Karty umělců jsou zobrazeny - Skrýt čipy - Šipka je skrytá - Šipky jsou zobrazeny Skrýt část atributů \'Doporučená místa\', sekce Hry a hudba jsou skryté \'Doporučená místa\', jsou zobrazeny sekce Hry a hudba @@ -628,15 +628,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Skrýt štítek polohy Štítek polohy je skrytý Popisek umístění je zobrazen - Skrýt zvuk do playlistu - Uložit zvuk do playlistu je skrytý - Ukládat zvuk do seznamu skladeb je zobrazen - Skrýt toto tlačítko zvuku - Použít toto zvukové tlačítko je skryté - Použít toto zvukové tlačítko je zobrazeno + Skrýt tlačítko uložit hudbu + Uložení hudby je skryté + Ukládání hudby je zobrazeno Skrýt návrhy hledání Návrhy hledání jsou skryty Návrhy hledání jsou zobrazeny + Skrýt nálepky + Samolepky jsou skryté + Samolepky jsou zobrazeny Skrýt tlačítko „To se mi líbí“ Tlačítko se mi líbí je skryté Tlačítko se mi líbí diff --git a/src/main/resources/addresources/values-da-rDK/strings.xml b/src/main/resources/addresources/values-da-rDK/strings.xml index 829adf574..6e3edec6b 100644 --- a/src/main/resources/addresources/values-da-rDK/strings.xml +++ b/src/main/resources/addresources/values-da-rDK/strings.xml @@ -148,6 +148,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Skjul kanalretningslinjer Kanalretningslinjer er skjult Kanalretningslinjer er vist + Skjul chips hylde + Chips hylde er skjult + Chips hylde er vist Skjul udvidelig chip under videoer Kan udvides chips er skjult Udvidede jetoner vises @@ -208,9 +211,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Skjul kunstnerkort Kunstnerkort er skjult Kunstnerkort vises - Skjul chips hylde - Chips hylde er skjult - Chips hylde er vist Skjul attributter sektion \'Udvalgte steder\', Spil og Musik sektioner er skjult \'Udvalgte steder\', Spil og Musik sektioner er vist @@ -627,15 +627,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Skjul placeringsetiket Placeringsetiket er skjult Placeringsetiket er vist - Skjul gem lyd til afspilningslisteknappen - Gem lyd til afspilningslisten er skjult - Gem lyd til afspilningslisten vises - Skjul brug denne lydknap - Brug denne lydknap er skjult - Brug denne lydknap vises + Skjul gem musik knap + Gem musik er skjult + Gem musik er vist Skjul søgeforslag Søgeforslag er skjult Søgeforslag er vist + Skjul klistermærker + Klistermærker er skjult + Klistermærker vises Skjul lignende knap Ligesom knappen er skjult Lideknap vises diff --git a/src/main/resources/addresources/values-de-rDE/strings.xml b/src/main/resources/addresources/values-de-rDE/strings.xml index 80036b7b9..cdef51c0c 100644 --- a/src/main/resources/addresources/values-de-rDE/strings.xml +++ b/src/main/resources/addresources/values-de-rDE/strings.xml @@ -147,6 +147,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Kanalrichtlinien ausblenden Kanal-Richtlinien sind ausgeblendet Kanalrichtlinien werden angezeigt + Chips ausblenden + Chips sind ausgeblendet + Chips werden angezeigt Erweiterbaren Sektions-Chip unter Videos ausblenden Erweiterbare Chips sind ausgeblendet Erweiterbare Chips werden angezeigt @@ -207,9 +210,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Interpretenkarten ausblenden Künstlerkarten sind ausgeblendet Interpretenkarten werden angezeigt - Chips ausblenden - Chips sind ausgeblendet - Chips werden angezeigt Attributbereich ausblenden \'Vorgestellte Orte\', Spiele und Musik Sektionen sind ausgeblendet \'Vorgestellte Orte\', Spiele- und Musiksektionen werden angezeigt @@ -627,15 +627,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Standortbezeichnung ausblenden Ortsbezeichnung ist ausgeblendet Ortsbezeichnung wird angezeigt - Speicherton in Wiedergabelisten-Button ausblenden - Ton in Wiedergabeliste speichern ist ausgeblendet - Ton in Wiedergabeliste speichern wird angezeigt - Diese Sound-Taste ausblenden - Diese Sound-Taste ist ausgeblendet - Diese Sound-Taste wird angezeigt + Musikspeichern-Button ausblenden + Musik speichern ist ausgeblendet + Musik speichern wird angezeigt Suchvorschläge ausblenden Suchvorschläge sind ausgeblendet Suchvorschläge werden angezeigt + Sticker ausblenden + Sticker sind versteckt + Sticker werden angezeigt Verstecke \"Gefällt mir\" Button \"Gefällt mir\" Button ist ausgeblendet \"Gefällt mir\" Button wird angezeigt diff --git a/src/main/resources/addresources/values-el-rGR/strings.xml b/src/main/resources/addresources/values-el-rGR/strings.xml index 5979313e6..7725d7dea 100644 --- a/src/main/resources/addresources/values-el-rGR/strings.xml +++ b/src/main/resources/addresources/values-el-rGR/strings.xml @@ -147,6 +147,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Οδηγίες καναλιού Κρυμμένες Εμφανίζονται + Ενότητα σχετιζόμενων λέξεων + Κρυμμένη + Εμφανίζεται Επεκτάσιμα πλαίσια κάτω από τα βίντεο Κρυμμένα Εμφανίζονται @@ -207,9 +210,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Κάρτες καλλιτεχνών Κρυμμένες Εμφανίζονται - Ενότητα σχετιζόμενων λέξεων - Κρυμμένη - Εμφανίζεται Ενότητα χαρακτηριστικών «Προτεινόμενα μέρη», Παιχνίδια και Μουσικές ενότητες είναι κρυμμένα «Προτεινόμενα μέρη», Παιχνίδια και Μουσικές ενότητες εμφανίζονται @@ -627,15 +627,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Ετικέτα τοποθεσίας Κρυμμένη Εμφανίζεται - Κουμπί αποθήκευσης ήχου σε λίστα αναπαραγωγής - Κρυμμένο - Εμφανίζεται - Κουμπί «Χρήση αυτού του ήχου» - Κρυμμένο - Εμφανίζεται + Απόκρυψη κουμπιού αποθήκευσης μουσικής + Η αποθήκευση μουσικής είναι κρυμμένη + Η αποθήκευση μουσικής εμφανίζεται Προτάσεις αναζήτησης Κρυμμένες Εμφανίζονται + Απόκρυψη αυτοκόλλητων + Τα αυτοκόλλητα είναι κρυμμένα + Τα αυτοκόλλητα εμφανίζονται Κουμπί «Μου αρέσει» Κρυμμένο Εμφανίζεται diff --git a/src/main/resources/addresources/values-es-rES/strings.xml b/src/main/resources/addresources/values-es-rES/strings.xml index c8dee4342..da2f62d08 100644 --- a/src/main/resources/addresources/values-es-rES/strings.xml +++ b/src/main/resources/addresources/values-es-rES/strings.xml @@ -147,6 +147,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Ocultar pautas de canal Las pautas del canal están ocultas Se muestran las pautas del canal + Ocultar estante de fichas + El estante de fichas está oculto + Se muestra el estante de fichas Ocultar ficha expandible en videos Las fichas expandibles están ocultas Se muestran fichas expandibles @@ -207,9 +210,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Ocultar tarjetas de artistas Las tarjetas de artistas están ocultas Se muestran las tarjetas del artista - Ocultar estante de fichas - El estante de fichas está oculto - Se muestra el estante de fichas Ocultar sección de atributos \'Lugares destacados\', Las secciones de juegos y música están ocultas \'Lugares destacados\', Se muestran las secciones de juegos y música @@ -627,15 +627,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Ocultar etiqueta de ubicación Etiqueta de ubicación oculta Etiqueta de ubicación mostrada - Ocultar sonido guardado al botón de lista de reproducción - Guardar sonido en lista de reproducción está oculto - Guardar sonido en la lista de reproducción se muestra - Ocultar usar este botón de sonido - Usar este botón de sonido está oculto - Usar este botón de sonido se muestra + Ocultar botón de guardar música + Guardar música está oculta + Guardar música se muestra Ocultar sugerencias de búsqueda Las sugerencias de búsqueda están ocultas Se muestran sugerencias de búsqueda + Ocultar stickers + Los pegatinas están ocultos + Se muestran pegatinas Ocultar botón me gusta El botón Me gusta está oculto Se muestra el botón Me Gusta diff --git a/src/main/resources/addresources/values-fi-rFI/strings.xml b/src/main/resources/addresources/values-fi-rFI/strings.xml index 2fd10ae1b..2e7fd4c41 100644 --- a/src/main/resources/addresources/values-fi-rFI/strings.xml +++ b/src/main/resources/addresources/values-fi-rFI/strings.xml @@ -33,28 +33,29 @@ This is because Crowdin requires temporarily flattening this file and removing t - Tarkistukset epäonnistui + Tarkastuksia epäonnistui Avaa virallinen sivusto Ohita <h5>Tämä sovellus ei näytä olevan sinun korjaamasi.</h5><br>Tämä sovellus ei ehkä toimi oikein, <b>voi olla haitallista tai jopa vaarallista käyttää</b>.<br><br>Nämä tarkastukset merkitsevät, että tämä sovellus on esiasennettu tai saatu joltain muulta:<br><br><small>%1$s</small><br>On erittäin suositeltavaa <b>poistaa tämä sovellus ja korjata se itse</b> varmistaaksesi, että käytät validoitua ja turvallista sovellusta.<p><br>Jos tämä varoitus jätetään huomiotta, se näytetään vain kahdesti. - Paikattu eri laitteella - Ei asennettu ReVanced Manager + Paikattu toisella laitteella + Ei ReVanced Managerin asentama Paikattu yli 10 minuuttia sitten + Paikattu %s päivää sitten APK käännöspäivä on vioittunut ReVanced Haluatko jatkaa? - Palauta + Nollaa Päivitä ja käynnistä uudelleen Käynnistä uudelleen Tuo Kopioi - Revanced asetukset palautettu oletukseksi - Tuotu %d asetukset + Revanced-asetukset nollattiin + Tuodut %d-asetukset Tuonti epäonnistui: %s - Tuo / Vie - Tuo / Vie ReVanced asetukset + Tuonti/vienti + Tuo/vie ReVanced-asetukset Käytät ReVanced Patches versiota <i>%s</i> Huomautus @@ -64,10 +65,10 @@ This is because Crowdin requires temporarily flattening this file and removing t - MicroG GmsCore ei ole asennettu. Asenna se. + MicroG GmsCorea ei ole asennettu. Asenna se. Vaatii toimenpiteitä MicroG GmsCorella ei ole oikeutta olla päällä taustalla.\n\nNoudata puhelimesi \"Don\'t kill my app\" -opasta ja käytä ohjeita MicroG-asennukseen.\n\nTämä on tarpeen, jotta sovellus toimisi. - Avaa sivusto + Avaa verkkosivusto MicroG GmsCoren akun optimointi on estettävä ongelmien välttämiseksi.\n\nNapauta jatka-näppäintä ja poista akun optimointi käytöstä. Jatka @@ -81,78 +82,81 @@ This is because Crowdin requires temporarily flattening this file and removing t Soitin Yleinen asettelu Liukusäädin - Pyyhkäisyohjaimet + Pyyhkäisyohjaus Sekalaiset Video Vianetsintä - Ota käyttöön tai poista käytöstä vianetsintäasetukset + Ota tai poista vianetsintäasetukset käytöstä Vianetsintätietojen kirjaaminen Vianetsintälokit ovat käytössä - Vianetsintälokit ovat poistettu käytöstä + Vianetsintälokit eivät ole käytössä Loki protokollan puskuri Vianetsintälokit sisältävät proto-puskurin Vianetsintälokit eivät sisällä proto-puskuria Loki pinojäljet Vianetsintälokit sisältävät pinojäljet Vianetsintälokit eivät sisällä pinojälkiä - Näytä ponnahdusilmoitus kun ReVanced virhe tapahtuu - Ponnahdusilmoitus näkyy, jos tapahtuu virhe + Näytä ponnahdusilmoitus, kun ReVanced-virhe tapahtuu + Ponnahdusilmoitus näytetään, jos tapahtuu virhe Ponnahdusilmoitusta ei näytetä, jos tapahtuu virhe - Virhe ponnahdusilmoitusten pois päältä laittaminen piilottaa kaikki ReVanced virheilmoitukset.\n\nSinulle ei ilmoiteta odottamattomista tapahtumista. + Ponnahdusilmoitusten pois käytöstä ottaminen piilottaa kaikki ReVanced-virheilmoitukset.\n\nSinulle ei ilmoiteta odottamattomista tapahtumista. - Poista käytöstä tykkäys / tilaus-painikeen hehku - Tykkää- ja tilauspainike ei hehku kun se mainitaan - Tykkää- ja tilauspainike hehkuu kun se mainitaan + Poista tykkää-/tilaa-painikkeiden hehku käytöstä + Tykkää- ja tilaa-painikkeet eivät hehku, kun ne mainitaan + Tykkää- ja tilaa-painikkeet hehkuvat, kun ne mainitaan Piilota harmaa erotin - Harmaat erottimet ovat piilossa + Harmaat erottimet on piilotettu Harmaat erottimet näytetään Piilota kanavan vesileima Vesileima on piilotettu Vesileima näytetään - Piilota vaakasuorat hyllyt + Piilota vaakasuuntaiset hyllyt Hyllyt, kuten seuraavat, on piilotettu:\n• Uusimmat uutiset\n• Jatka katselua\n• Etsi lisää kanavia\n• Ostokset\n• Katsele uudelleen Hyllyt näytetään - Piilota \'Liity\' -painike + Piilota \"Liity\" -painike Painike on piilotettu Painike näytetään - Piilota \'Sinulle\' hylly kanavasivulla + Piilota \"Sinulle\" -hylly kanavasivulla Hylly on piilotettu Hylly näytetään - Piilota \'Ilmoita minulle\' -painike + Piilota \"Ilmoita minulle\" -painike Painike on piilotettu Painike näytetään - Piilota \'Ihmiset myös katselevat\' -suositukset + Piilota \"Ihmiset myös katselevat\" -suositukset Suositukset on piilotettu Suositukset näytetään - Piilota \'Näytä lisää\' -painike + Piilota \"Näytä lisää\" -painike Painike on piilotettu Painike näytetään Piilota ajoitetut reaktiot Ajoitetut reaktiot on piilotettu Ajoitetut reaktiot näytetään - Piilota hakutuloksen hyllyn ylätunniste + Piilota hakutuloshyllyn ylätunniste Hyllyn ylätunniste on piilotettu Hyllyn ylätunniste näytetään - Piilota kanavan ohjeet - Kanavan ohjeet on piilotettu - Kanavan ohjeet näytetään - Piilota laajennettava siru videoiden alla - Laajennettavat sirut on piilotettu - Laajennettavat sirut näytetään - Piilota videon laatuvalikon alatunniste - Videon laatuvalikon alatunniste on piilotettu - Videon laatuvalikon alatunniste näytetään + Piilota kanavan säännöt + Kanavan säännöt on piilotettu + Kanavan säännöt näytetään + Piilota siruhylly + Siruhylly on piilotettu + Siruhylly näytetään + Piilota laajennettava osio videoiden alle + Laajennettavat osiot on piilotettu + Laajennettavat osiot näytetään + Piilota videolaatuvalikon alatunniste + Videolaatuvalikon alatunniste on piilotettu + Videolaatuvalikon alatunniste näytetään Piilota yhteisöpostaukset Yhteisöpostaukset on piilotettu Yhteisöpostaukset näytetään @@ -163,33 +167,33 @@ This is because Crowdin requires temporarily flattening this file and removing t Elokuvat-osio on piilotettu Elokuvat-osio näytetään Piilota syötteen kyselyt - Syötteen kyselyt ovat piilotettu + Syötteen kyselyt on piilotettu Syötteen kyselyt näytetään - Piilota yhteisön ohjeet - Yhteisön ohjeet on piilotettu - Yhteisön ohjeet näytetään - Piilota tilaajien yhteisön ohjeet - Tilaajien yhteisön ohjeet on piilotettu - Tilaajien yhteisön ohjeet näytetään + Piilota yhteisön säännöt + Yhteisön säännöt on piilotettu + Yhteisön säännöt näytetään + Piilota tilaajien yhteisön säännöt + Tilaajien yhteisön säännöt on piilotettu + Tilaajien yhteisön säännöt näytetään Piilota kanavan jäsen -hylly Kanavan jäsen -hylly on piilotettu Kanavan jäsen -hylly näytetään Piilota hätätilannelaatikot Hätätilannelaatikot on piilotettu Hätätilannelaatikot näytetään - Piilota infopaneelit - Infopaneelit on piilotettu - Infopaneelit näytetään + Piilota tietopaneelit + Tietopaneelit on piilotettu + Tietopaneelit näytetään Piilota lääketieteelliset paneelit Lääketieteelliset paneelit on piilotettu Lääketieteelliset paneelit näytetään Piilota kanavapalkki Kanavapalkki on piilotettu Kanavapalkki näytetään - Piilota Playables - Playables on piilotettu - Playables näytetään - Piilota pikatoiminnot koko näytön tilassa + Piilota Pelattavat + Pelattavat on piilotettu + Pelattavat näytetään + Piilota pikatoiminnot kokoruututilassa Pikatoiminnot on piilotettu Pikatoiminnot näytetään Piilota liittyvät videot pikatoiminnoissa @@ -207,58 +211,55 @@ This is because Crowdin requires temporarily flattening this file and removing t Piilota artistikortit Artistikortit on piilotettu Artistikortit näytetään - Piilota siruhylly - Siruhylly on piilotettu - Siruhylly näytetään Piilota attribuutit osio \'Paikat\', Pelit ja Musiikki -osiot on piilotettu \'Paikat\', Pelit ja Musiikki -osiot näytetään - Piilota Osat osio - Osat osio on piilotettu - Osat osio näytetään + Piilota Osat-osio + Osat-osio on piilotettu + Osat-osio näytetään Piilota \'Tutki podcastia\' -osio \'Tutki podcastia\' -osio on piilotettu \'Tutki podcastia\' -osio näytetään - Piilota infokorttien osio + Piilota tietokortit-osio Infokorttien osio on piilotettu Infokorttien osio näytetään - Piilota \'Keskeiset käsitteet\' -osio - \'Keskeiset käsitteet\' -osio on piilotettu - \'Keskeiset käsitteet\' -osio näytetään + Piilota \"Keskeiset käsitteet\" -osio + \"Keskeiset käsitteet\" -osio on piilotettu + \"Keskeiset käsitteet\" -osio näytetään Piilota Transkriptio-osio Transkriptio-osio on piilotettu Transkriptio-osio näytetään Videon kuvaus Piilota tai näytä videon kuvauskomponentteja Mukautettu suodatin - Piilota komponentteja käyttämällä mukautettuja suodattimia + Piilota komponentteja mukautetuilla suodattimilla Käytä mukautettua suodatinta Mukautettu suodatin on käytössä - Mukautettu suodatin on pois käytöstä + Mukautettu suodatin ei ole käytössä Mukautettu suodatin Luettelo komponentin polun rakentajan merkkijonoista suodatettavaksi uudella rivillä erotettuna Virheellinen mukautettu suodatin: %s - Piilota avainsanan sisältö + Piilota sisältöä avainsanojen mukaan Piilota haku- ja syötevideoita avainsanasuodattimilla - Piilota koti videoita avainsanojen mukaan - Koti-välilehdessä olevat videot suodatetaan avainsanojen mukaan - Koti-välilehdessä olevat videot ei suodateta avainsanojen mukaan - Piilota tilaukset videot avainsanojen mukaan - Tilaukset-välilehdessä olevat videot suodatetaan avainsanojen avulla - Tilaukset-välilehdessä olevat videot ei suodateta avainsanojen avulla - Piilota hakutulokset avainsanojen mukaan - Hakutulokset suodatetaan avainsanojen mukaan + Piilota koti-videoita avainsanojen mukaan + Koti-välilehden videoita suodatetaan avainsanojen mukaan + Koti-välilehden videoita ei suodateta avainsanojen mukaan + Piilota tilaukset-videoita avainsanojen mukaan + Tilaukset-välilehden videoita suodatetaan avainsanojen mukaan + Tilaukset-välilehden videoita ei suodateta avainsanojen mukaan + Piilota hakutuloksia avainsanojen muakan + Hakutuloksia suodatetaan avainsanojen mukaan Hakutuloksia ei suodateta avainsanojen mukaan - Piilotetut avainsanat + Piilotettavat avainsanat Piilotettavia avainsanoja ja lauseita, erotettuna uusilla riveillä\n\nAvainsanat voivat olla kanavien nimiä tai videon otsikoissa\n\nSuurilla kirjaimilla varustetut sanat täytyy syöttää kotelon kanssa (esim. iPhone, TikTok, LeBlanc) - Tietoja avainsanan suodatuksesta + Tietoja avainsanoilla suodatuksesta Etusivu/Tilaus / Hakutulokset suodatetaan piilottamaan sisältö, joka vastaa avainsanalauseita\n\nRajoitukset\n• Shortteja ei voi piilottaa kanavan nimellä\n• Joitakin UI-komponentteja ei välttämättä ole piilotettu\n• Haetaan hakusanalla ei ole tuloksia. Täsmää koko sanaan - Hakusanan / lauseen ympäröiminen kaksoislainauksilla estää videon osittaisia vastaavuuksia ja kanavien nimiä<br><br>Esimerkiksi,<br><b>\"ai\"</b> piilottaa videon: <b>How does AI work?</b><br>mutta ei piilota: <b>What does fair use mean?</b> + Hakusanan/lauseen ympäröiminen kaksoislainauksilla estää videon oitsikoiden ja kanavien nimien osittaisia vastaavuuksia<br><br>Esimerkiksi,<br><b>\"ai\"</b> piilottaa videon: <b>How does AI work?</b><br>mutta ei piilota: <b>What does fair use mean?</b> Avainsanaa ei voi käyttää: %s Lisää lainauksia käyttämään avainsanaan: %s @@ -282,24 +283,24 @@ This is because Crowdin requires temporarily flattening this file and removing t Piilota itse-sponsoroidut kortit Itse-sponsoroidut kortit ovat piilotettu Itse-sponsoroidut kortit näytetään - Piilota banneri nähdäksesi tuotteet + Piilota tuotebanneri Banneri on piilotettu Banneri näytetään - Piilota ostos-linkit videon kuvauksessa + Piilota ostoslinkit videon kuvauksessa Ostoslinkit on piilotettu Ostoslinkit näytetään - Piilota \'Vieraile kaupassa\' -painike kanavasivuilla + Piilota \"Vieraile kaupassa\" -painike kanavasivuilla Painike on piilotettu Painike näytetään Piilota verkkohakutulokset Verkkohakutulokset on piilotettu Verkkohakutulokset näytetään - Piilota mainospalkit - Mainospalkit on piilotettu - Mainospalkit näytetään + Piilota fanituotebannerit + Fanituotebannerit on piilotettu + Fanituotebannerit näytetään - Piilota koko näytön mainokset toimii vain vanhemmilla laitteilla + Koko ruudun mainosten piilotus toimii vain vanhemmilla laitteilla Piilota YouTube Premium -tarjoukset @@ -312,17 +313,17 @@ This is because Crowdin requires temporarily flattening this file and removing t Videomainokset näytetään - URL kopioitu leikepöydälle - URL aikaleimalla kopioitu - Näytä kopioi videon URL-osoite painike - Painike on näkyvissä. Napauta kopioidaksesi videon URL-osoitteen. Paina ja pidä pohjassa kopioidaksesi URL-osoiteen aikaleimalla + URL-osoite kopioitiin leikepöydälle + Aikaleimattu URL-osoite kopioitiin + Näytä videon URL-osoitteen kopiointipainike + Painike näytetään. Napauta kopioidaksesi videon URL-osoitteen. Napauta ja pidä pohjassa kopioidaksesi aikaleimatun URL-osoitteen Painiketta ei näytetä - Näytä kopioi aikaleima URL-osoite painike - Painike on näkyvissä. Napauta kopioidaksesi videon URL-osoitteen aikaleimalla. Paina ja pidä pohjassa kopioidaksesi URL-osoiteen ilman aikaleimaa + Näytä videon aikaleimatun URL-osoitteen kopiointipainike + Painike näytetään. Napauta kopioidaksesi videon aikaleimatun URL-osoitteen. Napauta ja pidä pohjassa kopioidaksesi URL-osoitteen ilman aikaleimaa Painiketta ei näytetä - Poista katsojan harkinta-valintaikkuna + Poista katsojan harkinta -valintaikkuna Valintaikkuna poistetaan Valintaikkuna näytetään Tämä ei ohita ikärajoitusta. Se vain hyväksyy sen automaattisesti. @@ -334,65 +335,65 @@ This is because Crowdin requires temporarily flattening this file and removing t Latauspainike näytetään soittimessa Latauspainiketta ei näytetä soittimessa - Korvaa lataustoiminto painike + Korvaa lataustoimintopainike Latauspainike avaa ulkoisen lataajan - Latauspainike avaa natiivin sovelluksen sisäisen lataajan + Latauspainike avaa sovelluksen sisäisen lataajan Lataajan paketin nimi Ulkoisen lataussovelluksesi, kuten NewPipen tai Sealin, paketin nimi %s ei ole asennettu. Asenna se. - Poista tarkka haku ele käytöstä - Ele on poistettu käytöstä + Poista tarkka hakuele käytöstä + Ele ei ole käytössä Ele on käytössä - Ota käyttöön liukusäätimen napautus + Ota liukusäätimen napautus käyttöön Liukusäätimen napautus on käytössä - Liukusäätimen napautus on pois käytöstä + Liukusäätimen napautus ei ole käytössä Ota kirkkauden ele käyttöön Kirkkauden pyyhkäisy on käytössä - Kirkkauden pyyhkäisy pois päältä + Kirkkauden pyyhkäisy ei ole käytössä Ota äänenvoimakkuuden ele käyttöön Äänenvoimakkuuden pyyhkäisy on käytössä - Äänenvoimakkuuden pyyhkäisy on pois käytöstä - Ota käyttöön pyyhkäisy painamalla ele - Pyyhkäisy painamalla ele on käytössä - Pyyhkäisy painamalla ele on pois käytöstä + Äänenvoimakkuuden pyyhkäisy ei ole käytössä + Ota pyyhkäise painamalla -ele käyttöön + Pyyhkäise painamalla -ele on käytössä + Pyyhkäise painamalla -ele ei ole käytössä Ota haptinen palaute käyttöön Haptinen palaute on käytössä - Haptinen palaute on pois käytöstä + Haptinen palaute ei ole käytössä Tallenna ja palauta kirkkaus Tallenna ja palauta kirkkaus kokoruututilasta poistuttaessa tai siihen siirryttäessä Älä tallenna tai palauta kirkkautta kokoruututilasta poistuttaessa tai siihen siirryttäessä - Ota käyttöön automaattisen kirkkauden ele + Ota automaattisen kirkkauden ele käyttöön Automaattinen kirkkaus otetaan käyttöön pyyhkäisemällä alhaisimpaan arvoon Pienimpään arvoon alas pyyhkäiseminen ei ota käyttöön automaattista kirkkautta Automaattinen Pyyhkäisyikkunan aikakatkaisu - Millisekuntien määrä jolloin ikkuna on näkyvissä + Kuinka monta millisekuntia ikkuna on näkyvissä Pyyhkäisyikkunan tekstin koko - Tekstin koko pyyhkäisyikkunassa + Pyyhkäisyikkunan tekstin koko Pyyhkäisyn taustan näkyvyys - Pyyhkäisyn ikkunan taustan näkyvyys + Pyyhkäisyikkunan taustan näkyvyys Pyyhkäisyn kynnysraja Pyyhkäisyä varten tarvittavan kynnyksen määrä - Poista automaattiset kuvatekstit käytöstä - Automaattiset kuvatekstit pois käytöstä - Automaattiset kuvatekstit ovat käytössä + Poista automaattiset tekstitykset käytöstä + Automaattiset tekstitykset eivät ole käytössä + Automaattiset tekstitykset ovat käytössä Toimintopainikkeet Piilota tai näytä painikkeet videoiden alla - Piilota Tykkää ja Älä tykkää - Tykkää ja Älä tykkää -painikkeet on piilotettu - Tykkää ja Älä tykkää -painikkeet näytetään + Piilota Tykkää ja En tykkää + Tykkää- ja En tykkää -painikkeet on piilotettu + Tykkää- ja En tykkää -painikkeet näytetään - Piilota jaa + Piilota Jaa Jaa-painike on piilotettu Jaa-painike näytetään Piilota Kiitos - Kiitos painike on piilotettu - Kiitos painike näytetään + Kiitos-painike on piilotettu + Kiitos-painike näytetään Piilota Klippi - Klippi painike on piilotettu - Klippi painike näytetään + Klippi-painike on piilotettu + Klippi-painike näytetään Piilota Tallenna soittolistalle Tallenna soittolistalle -painike on piilotettu - Tallenna soittolistalle-painike näytetään + Tallenna soittolistalle -painike näytetään - Piilota automaattisen toiston painike - Automaattisen toiston painike on piilotettu - Automaattisen toiston painike näytetään + Piilota automaattisen toiston -painike + Automaattinen toisto -painike on piilotettu + Automaattinen toisto -painike näytetään - Piilota tekstitykset painike - Tekstitykset painike on piilotettu - Tekstitykset painike näytetään + Piilota tekstitykset-painike + Tekstitykset-painike on piilotettu + Tekstitykset-painike näytetään - Piilota striimaus painike - Striimaus painike on piilotettu - Striimaus painike näytetään + Piilota cast-painike + Cast-painike on piilotettu + Cast-painike näytetään Navigointipainikkeet - Piilota tai vaihda painikkeita navigointipalkissa + Piilota tai muuta navigointipalkin painikkeita Piilota Koti - Kotinäppäin on piilotettu - Kotinäppäin näytetään + Koti-painike on piilotettu + Koti-painike näytetään Piilota Shorts - Shorts painike on piilotettu - Shorts painike näytetään + Shorts-painike on piilotettu + Shorts-painike näytetään Piilota Luo - Luo painike on piilotettu - Luo painike näytetään + Luo-painike on piilotettu + Luo-painike näytetään Piilota Tilaukset - Tilaukset painike on piilotettu - Tilaukset painike näytetään + Tilaukset-painike on piilotettu + Tilaukset-painike näytetään Vaihda Luo ja Ilmoitukset - Luo painike on vaihdettu Ilmoituspainikkeen kanssa\n\nHuom: Tämän käyttöönotto kätkee myös video-mainokset väkisin - Luo painike ei ole vaihdettu Ilmoituspainikkeen kanssa + Luo- ja Ilmoitukset-painikkeet on vaihdettu\n\nHuom: Tämän käyttöönotto piilottaa myös videomainokset väkisin + Luo- ja Ilmoitukset-painikkeita ei vaihdeta Piilota navigointipainikkeiden tunnisteet - Tunnisteet piilotettu + Tunnisteet on piilotettu Tunnisteet näytetään Flyout-valikko - Piilota tai näytä soittimen flyout-valikkovalinnat + Piilota tai näytä soittimen flyout-valikon kohteita Piilota Tekstitykset Tekstitykset-valikko on piilotettu Tekstitykset-valikko näytetään - Piilota lisäasetukset + Piilota Lisäasetukset Lisäasetukset-valikko on piilotettu Lisäasetukset-valikko näytetään - Piilota Jatkuva toisto - Jatkuvan toiston valikko on piilotettu - Jatkuvan toiston valikko näytetään + Piilota Toista videota jatkuvasti + Toista videota jatkuvasti -valinta on piilotettu + Toista videota jatkuvasti -valinta näytetään - Piilota Tunnelmavalaistus - Tunnelmavalaistus valikko on piilotettu - Tunnelmavalaistus valikko näytetään + Piilota Elokuvatila + Elokuvatila-valinta on piilotettu + Elokuvatila-valinta näytetään - Piilota ohje & palaute - Ohje & palaute -valikko on piilotettu - Ohje & palaute -valikko näytetään + Piilota Ohjeet ja palaute + Ohjeet ja palaute -valinta on piilotettu + Ohjeet ja palaute -valinta näytetään Piilota Toistonopeus - Toistonopeus valikko on piilotettu - Toistonopeus valikko näytetään + Toistonopeus-valikko on piilotettu + Toistonopeus-valikko näytetään Piilota Lisätietoja - Lisätietoja valikko on piilotettu - Lisätietoja valikko näytetään + Lisätietoja-valinta on piilotettu + Lisätietoja-valinta näytetään Piilota Näytön lukitus - Näytön lukitus -valikko on piilotettu - Näytön lukitus -valikko näytetään + Näytön lukitus -valinta on piilotettu + Näytön lukitus -valinta näytetään Piilota Ääniraita - Ääniraita valikko on piilotettu - Ääniraita valikko näytetään + Ääniraita-valikko on piilotettu + Ääniraita-valikko näytetään Piilota Katso VR-tilassa - Katso VR-tilassa valikko on piilotettu - Katso VR-tilassa valikko näytetään + Katso VR-tilassa -valinta on piilotettu + Katso VR-tilassa -valinta näytetään - Piilota edellinen & seuraava video -painikkeet + Piilota edellinen- ja seuraava video -painikkeet Painikkeet on piilotettu Painikkeet näytetään Piilota albumikortit - Albumikortit ovat piilossa + Albumikortit on piilotettu Albumikortit näytetään Kommentit Piilota tai näytä kommenttiosion komponentteja - Piilota \'Jäsenten kommentit\' otsikko - \'Jäsenten kommentit\' otsikko on piilotettu - \'Jäsenten kommentit\' otsikko näytetään + Piilota \"Jäsenten kommentit\" -ylätunniste + \"Jäsenten kommentit\" -ylätunniste on piilotettu + \"Jäsenten kommentit\"-ylätunniste näytetään Piilota kommenttiosio Kommenttiosio on piilotettu Kommenttiosio näytetään - Piilota \'Luo Shorts-video\' painike - \'Luo Shorts-video\' painike on piilotettu - \'Luo Shorts-video\' painike näytetään - Piilota esikatseltava kommentti - Esikatseltava kommentti on piilotettu - Esikatseltava kommentti näytetään - Piilota kiitos painike - Kiitos painike on piilotettu - Kiitos painike näytetään - Piilota aikaleima ja emoji painikkeet - Aikaleima ja emoji painikkeet on piilotettu - Aikaleima ja emoji painikkeet näytetään + Piilota \"Luo Shorts-video\" -painike + \"Luo Shorts-video\" -painike on piilotettu + \"Luo Shorts-video\" -painike näytetään + Piilota kommentin esikatselu + Kommentin esikatselu on piilotettu + Kommentin esikatselu näytetään + Piilota kiitos-painike + Kiitos-painike on piilotettu + Kiitos-painike näytetään + Piilota aikaleima- ja emoji-painikkeet + Aikaleima- ja emoji-painikkeet on piilotettu + Aikaleima- ja emoji-painikkeet näytetään - Piilota joukkorahoitus laatikko + Piilota joukkorahoituslaatikko Joukkorahoituslaatikko on piilotettu Joukkorahoituslaatikko näytetään @@ -565,95 +566,95 @@ This is because Crowdin requires temporarily flattening this file and removing t Näytetään liittyvissä videoissa - Piilota kelluva mikrofoni painike + Piilota kelluva mikrofonipainike Mikrofonipainike piilotettu Mikrofonipainike näytetään - Poista ympäristötila käytöstä kokoruututilassa - Ambient-tila pois käytöstä - Ambient-tila käytössä + Poista elokuvatila käytöstä kokoruututilassa + Elokuvatila ei ole käytössä + Elokuvatila on käytössä - Piilota infokortit + Piilota tietokortit Tietokortit on piilotettu - Tiedot kortit näytetään + Tietokortit näytetään - Poista vierintänumeron animaatiot käytöstä - Vierivät numerot eivät ole animoituja - Rolling numerot ovat animoituja + Poista vierivät numeroanimaatiot käytöstä + Vieriviä numeroita ei animoida + Vierivät numerot animoidaan - Piilota seekbar videosoittimessa - Videosoittimen seekbar on piilotettu - Videosoittimen hakupalkki näytetään - Piilota seekbar videon pienoiskuvissa - Pikkukuvan hakupalkki on piilotettu - Pikkukuvan hakupalkki näytetään + Piilota liukusäädin videosoittimessa + Videosoittimen liukusäädin on piilotettu + Videosoittimen liukusäädin näytetään + Piilota liukusäädin videon pikkukuvissa + Pikkukuvan liukusäädin on piilotettu + Pikkukuvan liukusäädin näytetään - Piilota Shortsit kotisyötteessä - Shortsit kodin syötteessä ovat piilotettuja - Shortsit kodin syötteessä näytetään + Piilota Shortsit koti-syötteessä + Shortsit on piilotettu koti-syötteessä + Shortsit näytetään koti-syötteessä - Piilota Shortsit tilaussyötteessä - Shortsit tilaussyötteessä ovat piilossa - Tilaussyötteen shortsit näytetään + Piilota Shortsit tilaukset-syötteessä + Shortsit on piilotettu tilaukset-syötteessä + Shortsit näytetään tilaukset-syötteessä Piilota Shortsit hakutuloksissa - Shortsit hakutuloksissa on piilotettu - Hakutulosten shortsit on esitetty + Shortsit on piilotettu hakutuloksissa + Shortsit näytetään hakutuloksissa - Piilota liittymispainike - Liittymispainike on piilotettu - Liity painike näytetään + Piilota liity-painike + Liity-painike on piilotettu + Liity-painike näytetään - Piilota tilauspainike - Tilaus painike on piilotettu - Tilaa painike näytetään - Piilota pysäytetyt peittokuvapainikkeet - Pysäytetyt peittokuva-painikkeet on piilotettu - Pysäytetyt peittokuva-painikkeet näytetään - Piilota kauppa painike - Kaupan painike on piilotettu - Kaupan painike näytetään + Piilota tilaa-painike + Tilaa-painike on piilotettu + Tilaa-painike näytetään + Piilota pysäytysruudun painikkeet + Pysäytysruudun painikkeet on piilotettu + Pysäytysruudun painikkeet näytetään + Piilota kauppa-painike + Kauppa-painike on piilotettu + Kauppa-painike näytetään Piilota \"superkiitos\" -painike \"Superkiitos\" -painike on piilotettu - \"Superkiitos\" painike on näkyvissä - Piilota tunnistetut tuotteet - Tagit tuotteet on piilotettu - Tunnisteet tuotteet näytetään - Piilota sijainnin nimi - Sijainnin etiketti on piilotettu - Sijainnin etiketti näytetään - Piilota tallennettava ääni soittolistapainikkeeseen - Tallenna ääni soittolistalle on piilotettu - Tallenna ääni soittolistalle näytetään - Piilota käytä tätä äänipainiketta - Käytä tätä äänipainiketta on piilotettu - Käytä tätä äänipainiketta näytetään + \"Superkiitos\" -painike näytetään + Piilota merkityt tuotteet + Merkityt tuotteet on piilotettu + Merkityt tuotteet näytetään + Piilota sijaintitieto + Sijaintitieto on piilotettu + Sijaintitieto näytetään + Piilota musiikin tallennus painike + Tallenna musiikki on piilotettu + Tallenna musiikki näytetään Piilota hakuehdotukset Hakuehdotukset on piilotettu Hakuehdotukset näytetään + Piilota tarrat + Tarrat on piilotettu + Tarrat näytetään Piilota tykkää-painike Tykkä-painike on piilotettu - Tykkää painiketta näytetään - Piilota vastenmielinen painike - Poista tykkää-painike on piilotettu - Näkyy vastenmielinen painike - Piilota kommentit painike - Kommentit painike on piilotettu - Kommentit painike näytetään + Tykkää-painike näytetään + Piilota en tykkää -painike + En tykkää -painike on piilotettu + En tykkää -painike näytetään + Piilota kommentit-painike + Kommentit-painike on piilotettu + Kommentit-painike näytetään Piilota remix-painike Remix-painike on piilotettu Remix-painike näytetään - Piilota jakopainike + Piilota jaa-painike Jaa-painike on piilotettu - Jakamispainike näytetään - Piilota infopaneeli + Jaa-painike näytetään + Piilota tietopaneeli Tietopaneeli on piilotettu Tietopaneeli näytetään Piilota kanavapalkki @@ -677,7 +678,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Poista videoehdotukset-loppunäyttö käytöstä - Ehdotetut videot poistetaan käytöstä + Ehdotetut videot on piilotettu Ehdotetut videot näytetään @@ -687,7 +688,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Piilota soittimen ponnahdusikkunat - Soittimen ponnahdusikkuna piilotetaan + Soittimen ponnahdusikkunat on piilotettu Soittimen ponnahdusikkunat näytetään @@ -697,57 +698,57 @@ This is because Crowdin requires temporarily flattening this file and removing t - Alapeukutus ei ole tilapäisesti käytettävissä - Eivät tykkää ei saatavilla (tila %d) - Ei tykkää (asiakkaan API-raja saavutettu) - Ei käytettävissä (%s) + Ei-tykkäykset eivät ole tilapäisesti käytettävissä + Ei-tykkäykset eivät ole saatavilla (tila %d) + Ei-tykkäykset eivät ole saatavilla (asiakkaan API-raja saavutettu) + Ei-tykkäykset eivät ole saatavilla (%s) - Lataa video uudelleen äänestääksesi käyttäen Return YouTube Dislike - Näkymät näytetään - Esteitä ei näytetä - Näytä ei-tykkäät pikavalinnoissa - Ei tykkää näytetyistä Shortsista - Ei tykkää Shorts\n\nLimitation: Distrans ei välttämättä näy incognito-tilassa - Ei tykkää piilotetuista Shortsista - Ei tykkää prosentteina - Prosentteina näytetyt tykkäät - Ei tykkää näytetään numerona + Lataa video uudelleen äänestääksesi Return YouTube Dislikellä + Ei-tykkäykset näytetään + Ei-tykkäykset on piilotettu + Näytä ei-tykkäät Shortseissa + Ei-tykkäykset näytetään Shortseissa + Ei-tykkäykset näytetään Shortseissa\n\nRajoitus: Ne eivät välttämättä näy incognito-tilassa + Ei-tykkäykset on piilotettu Shortseissa + Ei-tykkäykset prosentteina + Ei-tykkäykset näytetään prosenttina + Ei-tykkäykset näytetään numerona Kompakti tykkäyspainike - Tykkää näppäintä tyyliteltynä minimileveydelle - Tykkää painike tyyliteltynä parhaaseen ulkonäköön + Tykkää-painike on muotoiltu mahdollisimman kapeaksi + Tykkää-painike on muotoiltu parhaan näköiseksi Näytä ponnahdusilmoitus, jos API ei ole käytettävissä Ponnahdusilmoitus näytetään, jos Return YouTube Dislike ei ole käytettävissä Ponnahdusilmoitusta ei näytetä, jos Return YouTube Dislike ei ole käytettävissä Tietoja - Tiedot on toimittanut Return YouTube Dislike API. Napauta tästä lukeaksesi lisää + Tiedot ovat peräisin Return YouTube Disliken API:sta. Napauta tästä lukeaksesi lisää - Tämän laitteen ReturnYouTubeDislike API tilastot + Tämän laitteen ReturnYouTubeDislike API -tilastot API-vasteaika, keskiarvo - API:n vasteaika, minimi - API vasteaika, maksimi - API vasteaika, viimeinen video + API-vasteaika, minimi + API-vasteaika, maksimi + API-vasteaika, viimeisin video Ei ole tilapäisesti käytettävissä - Asiakkaan API-rajaa voimassa API noutaa äänet, puhelujen määrä - Verkkopuheluja ei ole soitettu - %d verkkopuhelut soitettu + Verkkokutsuja ei ole tehty + %d verkkokutsua tehty API noutaa äänet, aikataulujen määrä - Verkkopuheluita ei ole aikakatkaistu - %d verkkopuhelua aikakatkaistiin + Verkkokutsuja ei ole aikakatkaistu + %d verkkokutsua aikakatkaistiin API:n asiakashintojen raja-arvot Asiakasmäärän rajoja ei havaittu Asiakkaan hintaraja kohdistettu %d kertaa %d millisekuntia - Ota käyttöön laaja hakupalkki + Ota laaja hakupalkki käyttöön Laaja hakupalkki on käytössä - Laaja hakupalkki on poistettu käytöstä + Laaja hakupalkki ei ole käytössä - Palauta vanhat seekbar pikkukuvat - Seekbar pikkukuvat näkyvät seekbar yläpuolella - Seekbar pikkukuvat näkyvät koko näytössä + Palauta vanhat liukusäätimen pikkukuvat + Liukusäätimen pikkukuvat näkyvät liukusäätimen yläpuolella + Liukusäätimen pikkukuvat näkyvät kokoruututilassa Ota SponsorBlock käyttöön @@ -757,9 +758,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Osion äänestyspainike näytetään Osion äänestyspainiketta ei näytetä - Käytä kompaktia ohituspainiketta - Ohituspainike tyylitelty mahdollisimman pieneksi - Ohituspainike tyylitelty parhaan näköiseksi + Käytä pientä ohituspainiketta + Ohituspainike on muotoiltu mahdollisimman kapeaksi + Ohituspainike on muotoiltu parhaan näköiseksi Piilota ohituspainike automaattisesti Ohituspainike piiloutuu muutaman sekunnin jälkeen Ohituspainike näytetään koko osion ajan @@ -779,35 +780,35 @@ This is because Crowdin requires temporarily flattening this file and removing t Näytä ohjeet Ohjeet sisältävät sääntöjä ja vinkkejä uusien osioiden luomiseen Noudata ohjeita - Lue SponsorBlock ohjeet ennen uusien osioiden luomista + Lue SponsorBlock-ohjeet ennen uusien osioiden luomista Luettu jo Näytä minulle Yleiset Näytä ponnahdusilmoitus, jos API ei ole käytettävissä Ponnahdusilmoitus näytetään, jos SponsorBlock ei ole käytettävissä Ponnahdusilmoitusta ei näytetä, jos SponsorBlock ei ole käytettävissä - Käytä ohitusten lukumäärän seurantaa + Ota ohitusmäärän seuranta käyttöön Antaa SponsorBlock-tulostaulukon tietää, kuinka paljon aikaa säästyy. Tulostauluun lähetetään viesti aina, kun osio ohitetaan Ohitusmäärän seuranta ei ole käytössä Osion vähimmäiskesto Tätä arvoa (sekunteina) lyhyempiä osioita ei näytetä tai ohiteta Virheellinen kellonaika Yksityinen käyttäjätunnuksesi - Tämä pitäisi pitää yksityisenä. Tämä on kuin salasana, eikä sitä pitäisi jakaa kenenkään kanssa. Jos jollakulla on tämä, he voivat esiintyä sinuna + Tämä on pidettävä yksityisenä. Tämä on kuin salasana, eikä sitä tule jakaa kenenkään kanssa. Jos jollakulla on tämä, he voivat esiintyä sinuna Yksityisen käyttäjätunnuksen on oltava vähintään 30 merkkiä pitkä - Vaihda API URL-osoite + Muuta API:n URL-osoitetta Osoite, jota SponsorBlock käyttää kutsujen lähettämiseen palvelimelle - API URL-osoitteen palautus - API URL-osoite on virheellinen - API URL-osoite muutettu + API:n URL-osoitteen nollaus + API:n URL-osoite on virheellinen + API:n URL-osoitetta muutettiin Tuo/Vie asetukset Kopioi SponsorBlock JSON konfiguraatiosi, joka voidaan tuoda/viedä ReVancediin ja muihin SponsorBlock alustoihin - SponsorBlock JSON konfiguraatiosi, joka voidaan tuoda/viedä ReVancediin ja muihin SponsorBlock alustoihin. Tämä sisältää yksityisen käyttäjätunnuksesi. Jaa tätä harkiten - Asetukset tuotu onnistuneesti + SponsorBlockin JSON-konfiguraatiosi, joka voidaan tuoda/viedä ReVancediin ja muihin SponsorBlock-alustoihin. Tämä sisältää yksityisen käyttäjätunnuksesi. Jaa tämä harkiten + Asetusten tuonti onnistui Tuonti epäonnistui: %s Vienti epäonnistui: %s - Asetuksesi sisältävät yksityisen SponsorBlock käyttäjätunnuksen.\n\nKäyttäjätunnuksesi on kuin salasana ja sitä ei pitäisi koskaan jakaa.\n + Asetuksesi sisältävät yksityisen SponsorBlock-käyttäjätunnuksen.\n\nKäyttäjätunnuksesi on kuin salasana, eikä sitä tule koskaan jakaa.\n Älä näytä uudelleen Muuta osion käyttäytymistä Sponsori @@ -878,46 +879,46 @@ This is because Crowdin requires temporarily flattening this file and removing t Osiota ei voitu äänestää (API aikakatkaistu) Osiota ei voitu äänestää (tila: %1$d %2$s) Osiota ei voitu äänestää: %s - Äänestä ylös - Äänestä alas - Vaihda kategoria - Ei ole osioita, joita äänestää + Ylä-ääni + Alaääni + Muuta kategoriaa + Äänestettäviä osioita ei ole Valitse osion kategoria Kategoria on poistettu käytöstä asetuksissa. Salli kategoria lähettääksesi. - Uusi SponsorBlock osio + Uusi SponsorBlock-osio Aseta %s uuden segmentin alkuun tai loppuun? alku loppu nyt - Aika jolloin osio alkaa - Aika jolloin osio päättyy + Aika, jolloin osio alkaa + Aika, jolloin osio päättyy Ovatko ajat oikein? Osio alkaa\n\n%1$s\nja loppuu\n%2$s\n\n(%3$s)\n\nValmis lähettämään? - Alku on oltava ennen loppua - Merkitse ensin kaksi sijaintia aikapalkissa + Alun on oltava ennen loppua + Merkitse ensin kaksi kohtaa aikapalkissa Esikatsele osio ja varmista, että se ohitetaan sujuvasti Muokkaa osion ajoitusta manuaalisesti Haluatko muokata osion alku- vai loppuaikaa? - Virheellinen aika + Annettu aika on virheellinen Tilastot Tilastot eivät tilapäisesti ole käytettävissä (API on alhaalla) Ladataan... - SponsorBlock on poistettu käytöstä + SponsorBlock ei ole käytössä Käyttäjänimesi: <b>%s</b> Vaihda käyttäjänimeä napauttamalla tästä Käyttäjänimeä ei voitu muuttaa: Tila: %1$d %2$s Käyttäjänimen vaihto onnistui Maineesi on <b>%.2f</b> Olet luonut <b>%s</b> osiota - Napauta tästä nähdäksesi segmentit - SponsorBlock tulostaulu + Napauta tästä nähdäksesi osiosi + SponsorBlock-tulostaulu Olet pelastanut ihmisiä <b>%s</b> segmentiltä - Napauta tästä nähdäksesi globaalit tilastot ja ylimmät avustajat + Napauta tästä nähdäksesi globaalit tilastot ja parhaat osallistujat Tuo on <b>%s</b> heidän elämästään.<br>Napauta tästä nähdäksesi tulostaulun Olet ohittanut <b>%s</b> osiota Tuo on <b>%s</b> - Nollataanko ohitettujen segmenttien laskuri? + Nollataanko ohitettujen osioiden laskuri? %1$s tuntia %2$s minuuttia %1$s minuuttia %2$s sekuntia %s sekuntia @@ -926,18 +927,18 @@ This is because Crowdin requires temporarily flattening this file and removing t Väri nollattu Virheellinen värikoodi Nollaa väri - Palauta + Nollaa Tietoja Tiedot tarjoaa SponsorBlock API. Napauta tätä saadaksesi lisätietoja ja nähdäksesi lataukset muille alustoille - Naamioi sovelluksen version + Naamioi sovellusversio Versio on naamioitu Versiota ei ole naamioitu Sovellusversio naamioidaan vanhemmaksi YouTuben versioksi.\n\nTämä muuttaa sovelluksen ulkonäköä ja ominaisuuksia, mutta tuntemattomia sivuvaikutuksia voi tapahtua.\n\nJos otetaan myöhemmin pois käytöstä, on suositeltavaa poistaa sovelluksen tiedot, käyttöliittymän virheiden estämiseksi. - Naamioi sovelluksen version kohde + Naamioitava kohdeversio 18.33.40 - Palauita RYD Shorts-videoissa incognito-tilassa 18.20.39 - Palauta laaja videonopeus- ja laatuvalikko @@ -950,64 +951,64 @@ This is because Crowdin requires temporarily flattening this file and removing t Oletus Koti - Etsi + Haku Tilaukset - Tutki + Tutustu Shortsit - Sinä välilehti - Tykätty videot + Sinä-välilehti + Tykätyt videot Historia Nousussa - Poista Shorts-soititmen jatkaminen käytöstä - Shorts-soitin ei jatka sovelluksen käynnistyessä - Shorts-soitin jatkaa sovelluksen käynnistyessä + Poista Shorts-soittimen jatkaminen käytöstä + Shorts-soitin ei jatku sovelluksen käynnistyessä + Shorts-soitin jatkuu sovelluksen käynnistyessä - Ota tablet-asettelu käyttöön - Tablet-laitteen asettelu käytössä - Tablet-laitteen asettelu pois päältä - Yhteisön viestit eivät näy tablet-asetteluissa + Ota tablettiasettelu käyttöön + Tablettiasettelu on käytössä + Tablettiasettelu ei ole käytössä + Yhteisöpostaukset eivät näy tablettiasettelussa Minisoitin Muuta sovelluksen tyyliä pienennetyssä soittimessa - Pienoissoittimen tyyppi + Minisoittimen tyyppi Alkuperäinen Puhelin Tabletti Moderni 1 Moderni 2 Moderni 3 - Piilota laajenna ja sulje painikkeet + Piilota laajenna- ja sulje-painikkeet Painikkeet on piilotettu\n(laajenna tai sulje minisoitin pyyhkäisemällä) - Laajenna ja sulje painikkeet näkyvät + Laajenna- ja sulje-painikkeet näytetään Piilota alatekstit - Alatekstit ovat piilotettuja + Alatekstit on piilotettu Alatekstit näytetään Piilota ohita etu- ja takapainikkeet Ohita eteenpäin ja takaisin on piilotettu Ohita eteenpäin ja takaisin näytetään - Valikon peiton läpinäkyvyys + Peittokuvan läpinäkyvyys Läpinäkyvyysarvo välillä 0–100, jossa 0 on läpinäkyvä Miniplayer peittokuvan läpinäkyvyyden on oltava välillä 0-100 - Ota kaltevuuden latausnäyttö käyttöön - Näytön lataaminen sisältää kaltevuuden taustan - Näytön lataus on kiinteä tausta + Ota latausruudun liukuväri käyttöön + Latausruudulla on liukuvärillinen tausta + Latausruudulla on tasainen tausta - Ota käyttöön oma seekbarin väri - Mukautettu seekbar väri näytetään - Alkuperäinen seekbarin väri näytetään - Mukautetun seekbarin väri - The color of the seekbar - Virheellinen seekbarin väriarvo. Käytetään oletusarvoa. + Ota mukautettu liukusäätimen väri käyttöön + Mukautettu liukusäätimen väri näytetään + Alkuperäinen liukusäätimen väri näytetään + Mukautettu liukusäätimen väri + Liukusäätimen väri + Virheellinen liukusäätimen väri. Käytetään oletusta. Ohita kuvan alueen rajoitukset @@ -1015,43 +1016,43 @@ This is because Crowdin requires temporarily flattening this file and removing t - Etusivu välilehti + Koti-välilehti - Tilauksen välilehti + Tilaukset-välilehti - Sinä välilehti + Sinä-välilehti Soittimen soittolistat, suositukset - Haun tulokset - Original thumbnails - DeArrow & Alkuperäiset pikkukuvat - DeArrow- ja Still-kaappaukset - Kaappaa edelleen + Hakutulokset + Alkuperäiset pikkukuvat + DeArrow ja Alkuperäiset pikkukuvat + DeArrow- ja kuvakaappaukset + Kuvakaappaukset DeArrow tarjoaa joukkoon hankittuja pikkukuvia YouTube-videoille. Nämä pikkukuvat ovat usein merkityksellisempiä kuin YouTube\n\nJos käytössä, videon URL-osoitteet lähetetään API-palvelimelle, eikä muita tietoja ole lähetetty. Jos videossa ei ole DeArrow pikkukuvia, sitten alkuperäiset tai vielä kaappaukset näytetään\n\nNapauta tästä saadaksesi lisätietoja DeArrowista Näytä ponnahdusilmoitus, jos API ei ole käytettävissä Ponnahdusilmoitus näytetään, jos DeArrow ei ole käytettävissä Ponnahdusilmoitusta ei näytetä, jos DeArrow ei ole käytettävissä - DeArrow API endpoint - DeArrow thumbnail -välimuistin päätepisteen URL - Yhä videon kaappaukset - Still kaappaukset otetaan jokaisen videon alusta, keskeltä / lopusta. Nämä kuvat on rakennettu YouTubeen, eikä ulkoista APIa käytetä. - Käytä nopeasti vielä kaappauksia - Käyttämällä keskilaatua edelleen kaappauksia. Pikkukuvat latautuvat nopeammin, mutta live-virrat, julkaisemattomat tai hyvin vanhat videot voivat näyttää tyhjiä pikkukuvia - Käyttämällä korkea laatu vielä kaappauksia - Videon aika ottaa vielä kaappauksia + DeArrow:n API-päätepiste + DeArrow-pikkukuvien välimuistipäätepisteen URL-osoite + Videon kuvakaappaukset + Kuvakaappaukset otetaan kunkin videon alusta/keskeltä/lopusta. Nämä kuvat on sisäänrakennettu YouTubeen, eikä ulkoista API:a käytetä + Käytä nopeita kuvakaappauksia + Käytetään keskilaatuisia kuvakaappauksia. Pikkukuvat latautuvat nopeammin, mutta suorilla lähetyksillä, julkaisemattomilla tai hyvin vanhoilla videoilla saattaa näkyä tyhjiä pikkukuvia + Käytetään korkealaatuisia kuvakaappauksia + Videon aika, josta kuvakaappaukset otetaan Videon alku - Videon keski + Videon keskikohta Videon loppu - Dearrow tilapäisesti ei ole käytettävissä (tilakoodi: %s) - Dearrow tilapäisesti ei ole käytettävissä + DeArrow ei ole tilapäisesti käytettävissä (tila: %s) + DeArrow ei ole tilapäisesti käytettävissä - Näytä peruutetut ilmoitukset + Näytä ReVanced-ilmoitukset Ilmoitukset näytetään käynnistettäessä Ilmoituksia ei näytetä käynnistettäessä Näytä ilmoitukset käynnistettäessä Yhteyden muodostaminen ilmoitusten tarjoajaan epäonnistui - Sulje + Hylkää Varoitus @@ -1060,8 +1061,8 @@ This is because Crowdin requires temporarily flattening this file and removing t Ota automaattinen toisto käyttöön - Automaattinen toisto käytössä - Automaattinen toisto on poistettu käytöstä + Automaattinen toisto on käytössä + Automaattinen toisto ei ole käytössä Naamioi laitteen mitat @@ -1070,85 +1071,85 @@ This is because Crowdin requires temporarily flattening this file and removing t Tämän käyttöönotto saattaa aiheuttaa videon toiston pätkimistä, akun keston huonontumista ja tuntemattomia sivuvaikutuksia. - GmsCore Asetukset + GmsCore-asetukset GmsCoren asetukset Ohita URL-osoitteen uudelleenohjaus - URL-uudelleenohjaukset on ohitettu - URL-uudelleenohjauksia ei ole ohitettu + URL-osoitteen uudelleenohjaukset ohitetaan + URL-osoitteen uudelleenohjauksia ei ohiteta Avaa linkit selaimessa - Avataan linkkejä ulkoisesti - Avataan linkkejä sovelluksessa + Linkit avataan ulkoisesti + Linkit avataan sovelluksessa - Poista seurantakyselyn parametri - Seurantakyselyn parametri on poistettu linkeistä - Seurantakyselyn parametria ei poisteta linkeistä + Poista seurantakyselyparametrit + Seurantakyselyparametrit poistetaan linkeistä + Seurantakyselyparametrejä ei poisteta linkeistä - Poista zoom haptiikka käytöstä - Haptiot pois päältä - Haptics käytössä + Poista zoomauksen tärinä käytöstä + Tärinä ei ole käytössä + Tärinä on käytössä Automaattinen laatu - Muista videon laadun muutokset + Muista videolaadun muutokset Laatumuutokset koskevat kaikkia videoita - Laadun muutokset koskevat vain nykyistä videota + Laatumuutokset koskevat vain nykyistä videota Videon oletuslaatu Wi-Fi-verkossa - Videon oletuslaatu matkapuhelinverkossa + Videon oletuslaatu mobiiliverkossa mobiili wifi - Muutettu oletus %1$s laatu: %2$s + %1$s-oletuslaatu muutettiin: %2$s Näytä nopeusikkuna painike Painike näytetään - Painikkeita ei näytetä + Painiketta ei näytetä - Mukautetut toiston nopeudet - Lisää tai muuta käytettävissä olevia soiton nopeuksia - Mukautettujen nopeuksien on oltava alle %s. Oletusarvojen käyttäminen. - Virheelliset mukautetut soiton nopeudet. Käytä oletusarvoja. + Mukautetut toistonopeudet + Lisää tai muuta käytettävissä olevia toistonopeuksia + Mukautettujen nopeuksien on oltava alle %s. Käytetään oletusarvoja. + Virheelliset mukautetut toistonopeudet. Käytetään oletusarvoja. - Muista toiston nopeuden muutokset - Toiston nopeuden muutokset koskevat kaikkia videoita - Toiston nopeuden muutokset koskevat vain nykyistä videota + Muista toistonopeuden muutokset + Toistonopeuden muutokset koskevat kaikkia videoita + Toistonopeuden muutokset koskevat vain nykyistä videota Toiston oletusnopeus - Muutettu oletusnopeus muotoon: %s + Toiston oletusnopeus muutettiin: %s - Palauta vanhan videon laatuvalikko - Vanha videon laatuvalikko näytetään - Vanhaa videon laatuvalikkoa ei näytetä + Palauta vanha videolaatuvalikko + Vanha videolaatuvalikko näytetään + Vanhaa videolaatuvalikkoa ei näytetä - Ota liu\'uta etsiäksesi käyttöön - Liu\'uta etsiäksesi on käytössä - Liu\'uta etsiäksesi ei ole käytössä + Ota kelaus liu\'uttamalla käyttöön + Kelaus liu\'uttamalla on käytössä + Kelaus liu\'uttamalla ei ole käytössä - Spoof video streams - Spoof asiakkaan videovirrat estää toiston ongelmia - Spoof video streams - Videon purot ovat puolattu - Videon suoratoistot eivät ole spoofed\n\nVideon toisto ei ehkä toimi - Tämän asetuksen poistaminen käytöstä voi aiheuttaa videon toiston ongelmia. - Oletus asiakas + Naamioi videovirrat + Naamioi asiakkaan videovirrat toisto-ongelmien estämiseksi + Naamioi videovirrat + Videovirrat naamioidaan + Videovirtoja ei naamioida\n\nViden toisto ei ehkä toimi + Tämän asetuksen poistaminen käytöstä voi aiheuttaa ongelmia videotoistossa. + Oletusasiakas Pakota AVC (H.264) Videokoodekki on AVC (H.264) Videokoodekki on VP9 tai AV1 Laitteessasi ei ole VP9-laitteiston dekoodausta, ja tämä asetus on aina päällä, kun asiakkaan spoofing on käytössä Tämän käyttöönotto voi parantaa akun kestoa ja korjata toistoa stuttering.\n\nAVC on suurin resoluutio 1080p, ja videon toisto käyttää enemmän internet-tietoja kuin VP9 tai AV1. - iOS:n havainnot haittavaikutuksista - • Elokuvat tai maksetut videot eivät välttämättä pelaa\n• Livestreams alkavat alusta\n• Videot saattavat päättyä 1 sekunnin alkupuolella\n• Ei opus-äänikoodekkia - Android VR havaintoon sivuvaikutukset - • Ääniraidan valikko puuttuu\n• Vakaa äänenvoimakkuus ei ole käytettävissä + iOS-naamioinnin haittavaikutukset + • Elokuvat tai maksetut videot eivät välttämättä toistu\n• Suoratoistot alkavat alusta\n• Videot saattavat päättyä 1 sekuntia etuajassa\n• Ei Opus-äänikoodekkia + Android VR -naamioinnin haittavaikutukset + • Ääniraitavalikko puuttuu\n• Tasainen äänenvoimakkuus ei ole käytettävissä @@ -1160,44 +1161,44 @@ This is because Crowdin requires temporarily flattening this file and removing t Estä äänimainokset - Ääni mainokset on estetty - Ääni mainokset on estetty + Äänimainokset estetään + Äänimainoksia ei estetä - %s ei ole käytettävissä. Mainokset voivat näkyä. Kokeile vaihtaa toiseen mainoslohkopalveluun asetuksista. - %s palvelin palautti virheen. Mainokset voivat näkyä. Kokeile vaihtaa toiseen mainoslohkopalveluun asetuksista. + %s ei ole käytettävissä. Mainokset voivat näkyä. Kokeile vaihtaa toiseen mainosestopalveluun asetuksissa. + Palvelin %s antoi virheen. Mainokset voivat näkyä. Kokeile vaihtaa toiseen mainosestopalveluun asetuksissa. Estä upotetut videomainokset - Poistettu käytöstä - Valoisa välityspalvelin - PurpleAdBlockin välityspalvelin + Pois käytöstä + Luminous-välityspalvelin + PurpleAdBlock-välityspalvelin Estä videomainokset - Videomainokset on estetty - Videomainokset on estetty + Videomainokset estetään + Videomainoksia ei estetä viesti poistettu Näytä poistetut viestit - Älä näytä poistetut viestit + Älä näytä poistettuja viestejä Piilota poistetut viestit spoilerin takana Näytä poistetut viestit ristitettyinä teksteinä - Lunasta kanava Pisteet automaattisesti - Kanava pisteet lunastetaan automaattisesti + Lunasta kanavapisteet automaattisesti + Kanavapisteet lunastetaan automaattisesti Kanavapisteitä ei lunasteta automaattisesti Ota Twitch-vianetsintätila käyttöön - Twitch debug tila on käytössä (ei suositellut) - Twitch-vianetsintätila on poistettu käytöstä + Twitch-vianetsintätila on käytössä (ei suositeltu) + Twitch-vianetsintätila ei ole käytössä - Peruutetut Asetukset + ReVanced-asetukset Mainokset - Mainosten esto asetukset + Mainosestoasetukset Keskustelu Keskustelun asetukset Sekalaiset @@ -1205,7 +1206,7 @@ This is because Crowdin requires temporarily flattening this file and removing t Yleiset asetukset Muut asetukset Asiakaspuolen mainokset - Palvelimen puolen surestream mainokset + Palvelinpuolen surestream-mainokset Vianetsintä lokiin Vianjäljityslokit ovat käytössä Vianjäljityslokit ovat pois päältä diff --git a/src/main/resources/addresources/values-fil-rPH/strings.xml b/src/main/resources/addresources/values-fil-rPH/strings.xml index d6484ffe3..8c031f2d8 100644 --- a/src/main/resources/addresources/values-fil-rPH/strings.xml +++ b/src/main/resources/addresources/values-fil-rPH/strings.xml @@ -134,6 +134,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Itago ang mga alituntunin ng channel Nakatago ang mga alituntunin ng channel Ipinapakita ang mga alituntunin sa channel + Itago ang shelf ng chips + Nakatago ang istante ng chips + Ipinapakita ang istante ng chips Itago ang napapalawak na chip sa ilalim ng mga video Nakatago ang mga napapalawak na chip Ipinapakita ang mga napapalawak na chip @@ -194,9 +197,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Itago ang mga card ng artist Nakatago ang mga artist card Ipinapakita ang mga card ng artist - Itago ang shelf ng chips - Nakatago ang istante ng chips - Ipinapakita ang istante ng chips Itago ang seksyon ng mga katangian Ang \"Mga itinatampok na lugar\", Mga seksyon ng Laro at Musika ay nakatago Ipinapakita ang \"Mga itinatampok na lugar\", Mga seksyon ng Laro at Musika @@ -600,9 +600,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Itago ang label ng lokasyon Nakatago ang label ng lokasyon Ipinapakita ang label ng lokasyon - Itago ang save sound to playlist button - Nakatago ang pag-save ng tunog sa playlist - Ang pag-save ng tunog sa playlist ay ipinapakita Itago ang mga mungkahi sa paghahanap Nakatago ang mga mungkahi sa paghahanap Ipinapakita ang mga mungkahi sa paghahanap diff --git a/src/main/resources/addresources/values-fr-rFR/strings.xml b/src/main/resources/addresources/values-fr-rFR/strings.xml index b3c149450..839753bbb 100644 --- a/src/main/resources/addresources/values-fr-rFR/strings.xml +++ b/src/main/resources/addresources/values-fr-rFR/strings.xml @@ -146,6 +146,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Masquer les règles de la chaîne Les règles de la chaîne sont masqués Les règles de la chaîne sont affichés + Masquer l\'étagère des puces + L\'étagère des puces est masquée + L\'étagère des puces est affichée Masquer les options extensibles sous les vidéos Les puces extensibles sont masquées Les puces extensibles sont affichées @@ -206,9 +209,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Masquer les cartes d\'artiste Les cartes d\'artiste sont masquées Les cartes d\'artiste sont affichées - Masquer l\'étagère des puces - L\'étagère des puces est masquée - L\'étagère des puces est affichée Masquer la section des attributs Les sections « Lieux en vedette », « Jeux » et « Musique » sont masquées Les sections « Lieux en vedette », « Jeux » et « Musique » sont affichées @@ -626,15 +626,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Masquer le libellé de l\'emplacement Le libellé de l\'emplacement est masqué Le libellé de l\'emplacement est affiché - Masquer le bouton Enregistrer le son dans la liste de lecture - Enregistrer le son dans la playlist est masqué - Enregistrer le son dans la playlist est affiché - Masquer le bouton \"Utiliser ce son\" - Utiliser ce bouton de son est caché - Le bouton \"Utiliser ce son\" est affiché + Masquer le bouton \"Enregistrer la musique\" + \"Enregistrer la musique\" est masqué + \"Enregistrer la musique\" est affiché Masquer les suggestions de recherche Les suggestions de recherche sont masquées Suggestions de recherche affichées + Masquer les stickers + Les stickers sont masqués + Les stickers sont affichés Masquer le bouton \"J\'aime\" Le bouton J\'aime est caché Le bouton J\'aime est affiché diff --git a/src/main/resources/addresources/values-ga-rIE/strings.xml b/src/main/resources/addresources/values-ga-rIE/strings.xml index b888ba710..d27ea0c81 100644 --- a/src/main/resources/addresources/values-ga-rIE/strings.xml +++ b/src/main/resources/addresources/values-ga-rIE/strings.xml @@ -147,6 +147,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Folaigh treoirlínte cainéal Tá treoirlínte cainéal i bhfolach Taispeántar treoirlínte cainéal + Folaigh seilf sliseanna + Tá seilf sliseanna i bhfolach + Taispeántar seilf sliseanna Folaigh sliseanna inmhéadaithe faoi fhíseáin Tá sceallóga leathnaithe i bhfolach Taispeántar sceallóga leathnaithe @@ -207,9 +210,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Folaigh cártaí ealaíontóirí Tá cártaí ealaíontóirí i bhfolach Taispeántar cártaí ealaíonta - Folaigh seilf sliseanna - Tá seilf sliseanna i bhfolach - Taispeántar seilf sliseanna Folaigh roinn tréithe Tá rannáin \'Áiteanna Réadmhaí\', Cluichí agus Ceol i bhfolach Taispeántar \'Áiteanna faoi Thrácht\', rannóga Cluichí agus Ceoil @@ -627,12 +627,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Folaigh lipéad suímh Tá lipéad suímh i bhfolach Taispeántar lipéad suímh - Folaigh fuaim a shábháil go cnaipe seinmliosta - Tá fuaim a shábháil go seinmliosta i bhfolach - Taispeántar fuaim a shábháil go seinmliosta - Folaigh úsáid an cnaipe fuaime seo - Bain úsáid as an cnaipe fuaime seo i bhfolach - Taispeántar úsáid an cnaipe fuaime seo Folaigh moltaí cuardaigh Tá moltaí cuardaigh i bhfolach Taispeántar moltaí cuardaigh diff --git a/src/main/resources/addresources/values-hu-rHU/strings.xml b/src/main/resources/addresources/values-hu-rHU/strings.xml index 84691dcdf..743aab1e4 100644 --- a/src/main/resources/addresources/values-hu-rHU/strings.xml +++ b/src/main/resources/addresources/values-hu-rHU/strings.xml @@ -147,6 +147,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Csatornák irányelveinek elrejtése A csatorna irányelvei elrejtve A csatorna irányelvei megjelenítve + Vágások polc elrejtése + A vágások polc el van rejtve + A vágások polc megjelenik Kiterjeszthető vágások elrejtése a videók alatt A kiterjeszthető vágások el vannak rejtve A kiterjeszthető vágások megjelennek @@ -207,9 +210,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Előadó kártyák elrejtése Az előadó kártyák rejtve vannak A előadó kártyák láthatók - Vágások polc elrejtése - A vágások polc el van rejtve - A vágások polc megjelenik Az attribútumok szakasz elrejtése A „Kiemelt helyek”, a Játékok és a Zene szakaszok el vannak rejtve Megjelennek a „Kiemelt helyek”, a Játékok és a Zene szakaszok @@ -627,12 +627,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Helycímke elrejtése A helycímke el van rejtve A helycímke megjelenik - Hang mentése a lejátszási listára gomb elrejtése - A hang mentése a lejátszási listára gomb el van rejtve - A hang mentése a lejátszási listára gomb megjelenik - \'Használja ezt a hang gombot\' elrejtése - \'Használja ezt a hang gombot\' elrejtve - \'Használja ezt a hang gombot\' látszik Keresési javaslatok elrejtése A keresési javaslatok el vannak rejtve A keresési javaslatok megjelennek diff --git a/src/main/resources/addresources/values-in-rID/strings.xml b/src/main/resources/addresources/values-in-rID/strings.xml index ae0d1f389..02dcde37b 100644 --- a/src/main/resources/addresources/values-in-rID/strings.xml +++ b/src/main/resources/addresources/values-in-rID/strings.xml @@ -147,6 +147,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Sembunyikan Panduan Saluran Panduan saluran disembunyikan Panduan saluran ditampilkan + Sembunyikan rak chip + Rak opsi deret disembunyikan + Rak chip ditampilkan Sembunyikan opsi deret di bawah video Opsi deret disembunyikan Chip yang dapat diperluas ditampilkan @@ -207,9 +210,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Sembunyikan kartu artis Kartu artis disembunyikan Kartu artis ditampilkan - Sembunyikan rak chip - Rak opsi deret disembunyikan - Rak chip ditampilkan Sembunyikan bagian atribut \'Tempat menonjol\', \'Permainan\', dan \'Musik\' disembunyikan \'Tempat menonjol\', \'Permainan\', dan \'Musik\' ditampilkan @@ -627,15 +627,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Sembunyikan label lokasi Label lokasi disembunyikan Label lokasi ditampilkan - Sembunyikan tombol simpan suara ke daftar putar - Simpan suara ke daftar putar disembunyikan - Simpan suara ke daftar putar ditampilkan - Sembunyikan gunakan tombol suara ini - Gunakan tombol suara ini disembunyikan - Gunakan tombol suara ini ditampilkan + Sembunyikan tombol simpan musik + Simpan musik disembunyikan + Simpan musik ditampilkan Sembunyikan saran penelusuran Saran penelusuran disembunyikan Saran penelusuran ditampilkan + Sembunyikan stiker + Stiker disembunyikan + Stiker ditampilkan Sembunyikan tombol suka Tombol suka disembunyikan Tombol suka ditampilkan diff --git a/src/main/resources/addresources/values-it-rIT/strings.xml b/src/main/resources/addresources/values-it-rIT/strings.xml index aca0b90a9..aef26f8b2 100644 --- a/src/main/resources/addresources/values-it-rIT/strings.xml +++ b/src/main/resources/addresources/values-it-rIT/strings.xml @@ -147,6 +147,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Nascondi linee guida del canale Linee guida del canale nascoste Linee guida del canale visibili + Nascondi scaffale chip + Lo scaffale di chip è nascosto + Lo scaffale delle fiches è mostrato Nascondi il frammento espandibile sotto i video Frammenti espandibili nascosti Frammenti espandibili visibili @@ -207,9 +210,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Nascondi le carte artista Le carte dell\'artista sono nascoste Vengono mostrate le carte dell\'artista - Nascondi scaffale chip - Lo scaffale di chip è nascosto - Lo scaffale delle fiches è mostrato Nascondi la sezione attributi Le sezioni \'Luoghi in evidenza\', Giochi e Musica sono nascoste Le sezioni \'Luoghi in evidenza\', Giochi e Musica sono visibili @@ -627,15 +627,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Nascondi etichetta posizione L\'etichetta di localizzazione è nascosta L\'etichetta di posizione è mostrata - Nascondi il pulsante Salva suono nella playlist - Salva il suono nella scaletta è nascosto - Il suono di salvataggio nella scaletta è mostrato - Nascondi il pulsante audio - Usa questo pulsante audio è nascosto - Usa questo pulsante audio è mostrato + Nascondi il pulsante per salvare musica + Salva musica nascosta + Salva musica mostrata Nascondi suggerimenti di ricerca I suggerimenti di ricerca sono nascosti I suggerimenti di ricerca sono mostrati + Nascondi adesivi + Gli adesivi sono nascosti + Gli adesivi sono mostrati Nascondi pulsante come Il pulsante simile è nascosto Il pulsante simile è mostrato diff --git a/src/main/resources/addresources/values-ja-rJP/strings.xml b/src/main/resources/addresources/values-ja-rJP/strings.xml index 6936326dc..ccc891ccd 100644 --- a/src/main/resources/addresources/values-ja-rJP/strings.xml +++ b/src/main/resources/addresources/values-ja-rJP/strings.xml @@ -146,6 +146,9 @@ This is because Crowdin requires temporarily flattening this file and removing t チャンネルガイドラインを非表示 チャンネルガイドラインは非表示です チャンネルガイドラインは表示されます + チップ欄を隠す + チップ欄は非表示です + チップ欄が表示されています 動画の下に表示される展開可能なチップを非表示 展開可能なチップは非表示です 展開可能なチップは表示されます @@ -206,9 +209,6 @@ This is because Crowdin requires temporarily flattening this file and removing t アーティストカードを隠す アーティストカードは非表示です アーティストカードが表示されます - チップ欄を隠す - チップ欄は非表示です - チップ欄が表示されています 属性セクションを非表示 「注目の場所」、ゲーム、音楽欄は非表示です 「注目の場所」、ゲーム、音楽欄は表示されます @@ -624,15 +624,15 @@ This is because Crowdin requires temporarily flattening this file and removing t 位置情報のラベルを隠す ロケーションラベルは非表示です 位置情報ラベルが表示されます - プレイリストに保存ボタンを隠す - プレイリストにサウンドを保存します。 - プレイリストにサウンドを保存する - このサウンドボタンを非表示にする - このサウンドボタンを非表示にする - このサウンドボタンを使用する + 保存ボタンを隠す + 音楽を非表示にする + 音楽を保存します。 検索候補を非表示 検索候補が非表示になります 検索候補が表示されます + ステッカーを隠す + ステッカーを非表示 + ステッカーを表示 「いいね」ボタンを隠す Like button is hidden いいねボタンが表示されます diff --git a/src/main/resources/addresources/values-ko-rKR/strings.xml b/src/main/resources/addresources/values-ko-rKR/strings.xml index d9ad621c7..ccdea0564 100644 --- a/src/main/resources/addresources/values-ko-rKR/strings.xml +++ b/src/main/resources/addresources/values-ko-rKR/strings.xml @@ -148,6 +148,9 @@ This is because Crowdin requires temporarily flattening this file and removing t 채널 가이드라인 숨기기 채널 가이드라인이 숨겨집니다 채널 가이드라인이 표시됩니다 + 더 많은 주제 탐색 선반 숨기기 + 더 많은 주제 탐색 선반이 숨겨집니다 + 더 많은 주제 탐색 선반이 표시됩니다 펼쳐볼 수 있는 정보 숨기기 썸네일 하단에서 다음 정보들이 숨겨집니다:\n동영상 설명, 챕터, 주요 순간, 스크립트,\n재생목록의 동영상, 이 동영상에 나온 제품 썸네일 하단에서 다음 정보들이 표시됩니다:\n동영상 설명, 챕터, 주요 순간, 스크립트,\n재생목록의 동영상, 이 동영상에 나온 제품 @@ -208,9 +211,6 @@ This is because Crowdin requires temporarily flattening this file and removing t 아티스트 카드 숨기기 아티스트 카드가 숨겨집니다 아티스트 카드가 표시됩니다 - 더 많은 주제 탐색 선반 숨기기 - 더 많은 주제 탐색 선반이 숨겨집니다 - 더 많은 주제 탐색 선반이 표시됩니다 속성 섹션 숨기기 게임 섹션, 음악 섹션 그리고 동영상 속 장소 섹션이 숨겨집니다 게임 섹션, 음악 섹션 그리고 동영상 속 장소 섹션이 표시됩니다 @@ -628,15 +628,15 @@ This is because Crowdin requires temporarily flattening this file and removing t 위치 라벨 숨기기 위치 라벨이 숨겨집니다 위치 라벨이 표시됩니다 - (재생목록에) 음악 저장 버튼 숨기기 - (재생목록에) 음악 저장 버튼이 숨겨집니다 - (재생목록에) 음악 저장 버튼이 표시됩니다 - \'이 사운드 사용\' 버튼 숨기기 - \'이 사운드 사용\' 버튼이 숨겨집니다 - \'이 사운드 사용\' 버튼이 표시됩니다 + 음악 저장 버튼 숨기기 + 음악 저장 버튼이 숨겨집니다 + 음악 저장 버튼이 표시됩니다 검색 추천 숨기기 검색 추천이 숨겨집니다 검색 추천이 표시됩니다 + Q&A 스티커 숨기기 + Q&A 스티커가 숨겨집니다 + Q&A 스티커가 표시됩니다 좋아요 버튼 숨기기 좋아요 버튼이 숨겨집니다 좋아요 버튼이 표시됩니다 diff --git a/src/main/resources/addresources/values-nb-rNO/strings.xml b/src/main/resources/addresources/values-nb-rNO/strings.xml index adbfd851d..8a78084a0 100644 --- a/src/main/resources/addresources/values-nb-rNO/strings.xml +++ b/src/main/resources/addresources/values-nb-rNO/strings.xml @@ -146,6 +146,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Skjul kanalretningslinjer Kanal retningslinjer er skjult Kanal retningslinjer er vist + Skjul brikker hylle + Chips shelf er gjemt + Chips shelf er vist Skjul ekspanderbar chip under videoer Utvidbare brikker er skjult Utvidbare brikker vises @@ -206,9 +209,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Skjul artistkort Kunstnerkort er skjult Artistkort vises - Skjul brikker hylle - Chips shelf er gjemt - Chips shelf er vist Skjul attributter del \'Utvalgte steder\', leker og musikkseksjoner er skjult \'Utvalgte steder\', spill og musikk seksjoner av spill blir vist @@ -623,15 +623,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Skjul merkelapp for plassering Posisjonsetiketten er skjult Posisjonsetikett vises - Skjul lyd fra spilleliste knapp - Lagre lyd i spillelisten er skjult - Lagre lyd i spilleliste vises - Skjul bruk av denne lydknappen - Bruk denne lydknappen er skjult - Bruk denne lydknappen vises + Skjul \"Lagre musikk\"-knapp + Lagre musikk er skjult + Lagre musikk vises Skjul søkeforslag Søkeforslag er skjult Søk forslag vises + Skjul klistremerker + Klistremerker er skjult + Klistremerker vises Skjul som knappen Lik knappen er skjult Liker-knappen vises diff --git a/src/main/resources/addresources/values-nl-rNL/strings.xml b/src/main/resources/addresources/values-nl-rNL/strings.xml index e360ae781..7d9f7b00b 100644 --- a/src/main/resources/addresources/values-nl-rNL/strings.xml +++ b/src/main/resources/addresources/values-nl-rNL/strings.xml @@ -148,6 +148,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Kanaalrichtlijnen verbergen Kanaalrichtlijnen zijn verborgen Kanaalrichtlijnen worden getoond + Verberg chips plank + Chips plank is verborgen + Chips plank wordt weergegeven Uitbreidbare chip verbergen onder video\'s Uitklapbare chips zijn verborgen Uitklapbare chips worden getoond @@ -208,9 +211,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Verberg artiest kaarten Kunstenaartjes zijn verborgen Kunstenaarkaarten worden weergegeven - Verberg chips plank - Chips plank is verborgen - Chips plank wordt weergegeven Attributensectie verbergen \'Aanbevolen plaatsen\', Games en Muziek secties zijn verborgen \'Aanbevolen plaatsen\', spellen en Muziek secties worden weergegeven @@ -628,15 +628,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Verberg locatie label Locatie label is verborgen Locatie label wordt weergegeven - Geluid opslaan naar afspeellijst knop verbergen - Geluid opslaan in afspeellijst is verborgen - Geluid opslaan in de afspeellijst wordt weergegeven - Gebruik deze geluidsknop verbergen - Gebruik van deze geluidsknop is verborgen - Gebruik deze geluidsknop wordt weergegeven + Verberg bewaar muziek knop + Muziek opslaan is verborgen + Muziek opslaan wordt weergegeven Zoeksuggesties verbergen Zoeksuggesties zijn verborgen Zoeksuggesties worden getoond + Verberg stickers + Stickers zijn verborgen + Stickers worden getoond Verberg leuk-knop Vind-ik-leuk-knop is verborgen Vind-ik-leuk-knop wordt weergegeven diff --git a/src/main/resources/addresources/values-pl-rPL/strings.xml b/src/main/resources/addresources/values-pl-rPL/strings.xml index c579873bb..4c78ead61 100644 --- a/src/main/resources/addresources/values-pl-rPL/strings.xml +++ b/src/main/resources/addresources/values-pl-rPL/strings.xml @@ -148,6 +148,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Ukryj wytyczne kanału Wytyczne kanału są ukryte Wytyczne kanału są wyświetlane + Ukryj półkę chipów + Półka czipów jest ukryta + Półka na czipy jest pokazana Ukryj rozszerzalny chipy pod filmami Rozwijalne chipy są ukryte Rozwijalne chipy są wyświetlane @@ -208,9 +211,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Ukryj karty artystów Karty wykonawcy są ukryte Karty artystów są wyświetlane - Ukryj półkę chipów - Półka czipów jest ukryta - Półka na czipy jest pokazana Ukryj sekcję atrybutów Sekcje \'Polecane miejsca\', gry i muzyka są ukryte Wyświetlane są sekcje \'Polecane miejsca\', gry i muzyka @@ -628,15 +628,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Ukryj etykietę lokalizacji Etykieta lokalizacji jest ukryta Etykieta lokalizacji jest wyświetlana - Ukryj dźwięk do przycisku playlisty - Zapisz dźwięk na liście odtwarzania jest ukryty - Zapisz dźwięk na liście odtwarzania - Ukryj ten przycisk dźwięku - Użyj tego przycisku dźwięku jest ukryty - Użyj tego przycisku dźwięku jest pokazany + Ukryj przycisk zapisu muzyki + Zapisz muzykę ukrytą + Zapisz muzykę Ukryj sugestie wyszukiwania Sugestie wyszukiwania są ukryte Sugestie wyszukiwania są wyświetlane + Ukryj naklejki + Naklejki są ukryte + Naklejki są wyświetlane Ukryj przycisk polubień Przycisk polubienia jest ukryty Przycisk polubienia jest pokazany diff --git a/src/main/resources/addresources/values-pt-rBR/strings.xml b/src/main/resources/addresources/values-pt-rBR/strings.xml index 12c4b18eb..fdb3c45ff 100644 --- a/src/main/resources/addresources/values-pt-rBR/strings.xml +++ b/src/main/resources/addresources/values-pt-rBR/strings.xml @@ -148,6 +148,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Ocultar diretrizes de canal Diretrizes de canal está oculto Diretrizes de canal não estão ocultos + Ocultar prateleira de cartões + Prateleira de cartões estão ocultas + Prateleira de cartões não estão ocultas Ocultar cartão expansível em vídeos Cartão expansível está oculto Cartão expansível não está oculto @@ -208,9 +211,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Ocultar cartões do artista Cartões do artista estão ocultas Cartões do artista não estão ocultas - Ocultar prateleira de cartões - Prateleira de cartões estão ocultas - Prateleira de cartões não estão ocultas Ocultar seção de atributos \'Locais em destaque\', Seções de Jogos e Músicas estão ocultas \'Locais em destaque\', Seções de Jogos e Músicas são mostrados @@ -628,12 +628,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Ocultar rótulo de localização Rótulo de localização está oculto Rótulo de localização é mostrado - Ocultar botão salvar música na lista de reprodução - Salvar música na lista de reprodução está oculta - Salvar música na lista de reprodução não está oculta - Ocultar botão Usar este som - Botão Usar este som está oculto - Botão Usar este som não está oculto Ocultar sugestões de busca Sugestões de pesquisa estão ocultas Sugestões de pesquisa são mostradas diff --git a/src/main/resources/addresources/values-pt-rPT/strings.xml b/src/main/resources/addresources/values-pt-rPT/strings.xml index a48417e9e..95c9a5b59 100644 --- a/src/main/resources/addresources/values-pt-rPT/strings.xml +++ b/src/main/resources/addresources/values-pt-rPT/strings.xml @@ -146,6 +146,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Esconder diretrizes do canal Diretrizes do canal estão escondidas Diretrizes do canal são visíveis + Esconder categoria de chips + Categoria de chips está escondida + Categoria de chips está visível Esconder chip expansível nos vídeos Chips expansíveis estão escondidos Chips expansíveis são visíveis @@ -206,9 +209,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Esconder cartões de artista Cartões do artista estão escondidos Cartões do artista são visíveis - Esconder categoria de chips - Categoria de chips está escondida - Categoria de chips está visível Ocultar secção de atributos \'Lugares de destaque\', secções de Jogos e Músicas estão ocultas \'Lugares de destaque\', secções de Jogos e Músicas são mostrados @@ -625,15 +625,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Ocultar rótulo de localização Rótulo de localização está oculto Rótulo de localização é mostrado - Esconder o som no botão de playlist - Salvar som para playlist está escondida - Salvar som para lista de reprodução - Ocultar usar este botão de som - Usar este botão de som está oculto - Usar este botão de som é mostrado + Ocultar botão salvar música + Salvar música está oculta + Salvar música é mostrado Ocultar sugestões de busca Sugestões de pesquisa estão ocultas Sugestões de pesquisa são mostradas + Ocultar stickers + Adesivos estão ocultos + Stickers são mostrados Esconder botão \"curtir\" O botão curtir está escondido O botão curtir está visível diff --git a/src/main/resources/addresources/values-ro-rRO/strings.xml b/src/main/resources/addresources/values-ro-rRO/strings.xml index ede6ade1d..54158b2af 100644 --- a/src/main/resources/addresources/values-ro-rRO/strings.xml +++ b/src/main/resources/addresources/values-ro-rRO/strings.xml @@ -147,6 +147,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Ascunde ghidurile canalelor Regulile canalului sunt ascunse Ghidul canalului este afișat + Ascunde raftul cipurilor + Raftul cipurilor este ascuns + Se afișează raftul cipurilor Ascunde cipul expandabil sub videoclipuri Cipurile expandabile sunt ascunse Cipurile expandabile sunt afișate @@ -207,9 +210,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Ascunde cărțile artistului Cartonaşele artistice sunt ascunse Cardurile artistului sunt afișate - Ascunde raftul cipurilor - Raftul cipurilor este ascuns - Se afișează raftul cipurilor Ascunde secțiunea atributelor Secțiunile de jocuri și muzică sunt ascunse \'Locuri recomandate\', secțiunile de jocuri și muzică sunt afișate @@ -627,15 +627,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Ascunde eticheta locației Eticheta locației este ascunsă Eticheta locației este afișată - Ascunde sunetul de salvare în butonul de redare - Salvarea sunetului în lista de redare este ascunsă - Salvarea sunetului în lista de redare este afișată - Ascunde butonul de sunet - Utilizaţi acest buton de sunet este ascuns - Utilizaţi acest buton de sunet este afișat + Ascunde butonul de salvare a muzicii + Salvarea muzicii este ascunsă + Salvarea muzicii este afișată Ascunde sugestiile de căutare Sugestiile de căutare sunt ascunse Sugestiile de căutare sunt afișate + Ascunde autocolante + Stickerele sunt ascunse + Stickerele sunt afișate Ascunde butonul similar Butonul Like este ascuns Butonul Like este afișat diff --git a/src/main/resources/addresources/values-ru-rRU/strings.xml b/src/main/resources/addresources/values-ru-rRU/strings.xml index a45a1481f..44cdf7465 100644 --- a/src/main/resources/addresources/values-ru-rRU/strings.xml +++ b/src/main/resources/addresources/values-ru-rRU/strings.xml @@ -148,6 +148,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Правила канала Правила канала в комментариях скрыты Правила канала в комментариях отображены + Секция тегов видео + Секция тегов похожих видео под плеером скрыта + Секция тегов похожих видео под плеером отображена Расширяемые фрагменты Расширяемые фрагменты под видео скрыты Расширяемые фрагменты под видео отображены @@ -208,9 +211,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Карточки исполнителей Карточки исполнителей скрыты Карточки исполнителей отображены - Секция тегов видео - Секция тегов похожих видео под плеером скрыта - Секция тегов похожих видео под плеером отображена Разделы атрибутов Разделы \"Упомянутые или показанные места\", \"Игры\" и \"Музыка\" в описании видео скрыты Разделы \"Упомянутые или показанные места\", \"Игры\" и \"Музыка\" в описании видео отображены @@ -628,15 +628,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Метка местоположения Метка местоположения в Shorts скрыта Метка местоположения в Shorts отображена - Кнопка \"Сохранить звук в плейлист\" - Кнопка \"Сохранить звук в плейлист\" в Shorts скрыта - Кнопка \"Сохранить звук в плейлист\" в Shorts отображена - Кнопка \"Использовать этот звук\" - Кнопка \"Использовать этот звук\" скрыта - Кнопка \"Использовать этот звук\" отображена + Скрыть кнопку сохранения музыки + Сохранение музыки скрыто + Музыка сохранена Поисковые подсказки Поисковые подсказки скрыты Поисковые подсказки отображены + Скрыть стикеры + Наклейки скрыты + Наклейки показываются Кнопка \"Лайк\" Кнопка \"Лайк\" в Shorts скрыта Кнопка \"Лайк\" в Shorts отображена diff --git a/src/main/resources/addresources/values-sk-rSK/strings.xml b/src/main/resources/addresources/values-sk-rSK/strings.xml index 1da7c8518..d37346f24 100644 --- a/src/main/resources/addresources/values-sk-rSK/strings.xml +++ b/src/main/resources/addresources/values-sk-rSK/strings.xml @@ -134,6 +134,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Skryť pokyny pre kanál Pokyny kanála sú skryté Zobrazia sa vodítka kanálov + Skryť poličku na žetóny + Polica na žetóny je skrytá + Je zobrazená polica na hranolky Skryť rozšíriteľný čip pod videami Rozšíriteľné čipy sú skryté Zobrazujú sa rozšíriteľné čipy @@ -194,9 +197,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Skryť karty umelcov Karty umelcov sú skryté Zobrazia sa karty umelcov - Skryť poličku na žetóny - Polica na žetóny je skrytá - Je zobrazená polica na hranolky Skryť sekciu atribútov Sekcie \"Odporúčané miesta\", Hry a Hudba sú skryté Zobrazia sa sekcie \"Odporúčané miesta\", Hry a Hudba @@ -601,9 +601,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Skryť štítok polohy Štítok miesta je skrytý Zobrazí sa štítok s umiestnením - Tlačidlo Skryť uloženie zvuku do zoznamu skladieb - Uloženie zvuku do zoznamu skladieb je skryté - Zobrazí sa Uložiť zvuk do zoznamu skladieb Skryť návrhy vyhľadávania Návrhy vyhľadávania sú skryté Zobrazia sa návrhy vyhľadávania diff --git a/src/main/resources/addresources/values-sr-rCS/strings.xml b/src/main/resources/addresources/values-sr-rCS/strings.xml index 0f6a1342d..0bebe923e 100644 --- a/src/main/resources/addresources/values-sr-rCS/strings.xml +++ b/src/main/resources/addresources/values-sr-rCS/strings.xml @@ -148,6 +148,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Sakrij smernice kanala Smernice kanala su skrivene Smernice kanala su prikazane + Sakrij policu oznaka sličnih videa + Polica oznaka sličnih videa je skrivena + Polica oznaka sličnih videa je prikazana Sakrij proširivi deo ispod videa Proširivi delovi su skriveni Proširivi delovi su prikazani @@ -208,9 +211,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Sakrij kartice izvođača Kartice izvođača su skrivene Kartice izvođača su prikazane - Sakrij policu oznaka sličnih videa - Polica oznaka sličnih videa je skrivena - Polica oznaka sličnih videa je prikazana Sakrij odeljak sa atributima Odeljci „Istaknuta mesta”, „Igre” i „Muzika” su skriveni Odeljci „Istaknuta mesta”, „Igre” i „Muzika” su prikazani @@ -628,12 +628,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Sakrij oznaku lokacije Oznaka lokacije je skrivena Oznaka lokacije je prikazana - Sakrij dugme „Sačuvaj zvuk na plejlistu” - Dugme „Sačuvaj zvuk na plejlistu” je skriveno - Dugme „Sačuvaj zvuk na plejlistu” je prikazano - Sakrij dugme „Koristi ovaj zvuk” - Dugme „Koristi ovaj zvuk” je skriveno - Dugme „Koristi ovaj zvuk” je prikazano Sakrij predloge za pretragu Predlozi za pretragu su skriveni Predlozi za pretragu su prikazani diff --git a/src/main/resources/addresources/values-sr-rSP/strings.xml b/src/main/resources/addresources/values-sr-rSP/strings.xml index df6fe4b63..698d8ad28 100644 --- a/src/main/resources/addresources/values-sr-rSP/strings.xml +++ b/src/main/resources/addresources/values-sr-rSP/strings.xml @@ -148,6 +148,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Сакриј смернице канала Смернице канала су скривене Смернице канала су приказане + Сакриј полицу ознака сличних видеа + Полица ознака сличних видеа је скривена + Полица ознака сличних видеа је приказана Сакриј прошириви део испод видеа Прошириви делови су скривени Прошириви делови су приказани @@ -208,9 +211,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Сакриј картице извођача Картице извођача су скривене Картице извођача су приказане - Сакриј полицу ознака сличних видеа - Полица ознака сличних видеа је скривена - Полица ознака сличних видеа је приказана Сакриј одељак са атрибутима Одељци „Истакнута места”, „Игре” и „Музика” су скривени Одељци „Истакнута места”, „Игре” и „Музика” су приказани @@ -628,12 +628,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Сакриј ознаку локације Ознака локације је скривена Ознака локације је приказана - Сакриј дугме „Сачувај звук на плејлисту” - Дугме „Сачувај звук на плејлисту” је скривено - Дугме „Сачувај звук на плејлисту” је приказано - Сакриј дугме „Користи овај звук” - Дугме „Користи овај звук” је скривено - Дугме „Користи овај звук” је приказано Сакриј предлоге за претрагу Предлози за претрагу су скривени Предлози за претрагу су приказани diff --git a/src/main/resources/addresources/values-sv-rSE/strings.xml b/src/main/resources/addresources/values-sv-rSE/strings.xml index f213dd6fa..30f07225a 100644 --- a/src/main/resources/addresources/values-sv-rSE/strings.xml +++ b/src/main/resources/addresources/values-sv-rSE/strings.xml @@ -148,6 +148,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Dölj kanalens riktlinjer Kanalriktlinjerna är dolda Kanalriktlinjer är synliga + Dölj hylla för flis + Chips hylla är dold + Chipshyllan är synlig Dölj utökningsbart chip under videor Utökningsbara marker är dolda Expanderbara marker är synliga @@ -208,9 +211,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Dölj artistkort Konstnärskort är dolda Artistkort är synliga - Dölj hylla för flis - Chips hylla är dold - Chipshyllan är synlig Dölj attributsektion \'Utvalda platser\', Spel- och musiksektioner är dolda \'Utvalda platser\', Spel- och musiksektioner visas @@ -628,15 +628,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Dölj platsetikett Platsetiketten är dold Platsetikett är synlig - Dölj spara ljud till spellistknappen - Spara ljud till spellistan är dolt - Spara ljud till spellistan är synlig - Dölj använda den här ljudknappen - Använd den här ljudknappen är dold - Använd den här ljudknappen visas + Dölj spara musikknappen + Spara musik är dold + Spara musik visas Dölj sökförslag Sökförslag är dolda Sökförslag är synliga + Dölj klistermärken + Klistermärken är dolda + Klistermärken visas Dölj knappen gilla Knappen gilla är dold Knappen gilla är synlig diff --git a/src/main/resources/addresources/values-tr-rTR/strings.xml b/src/main/resources/addresources/values-tr-rTR/strings.xml index 44016c1a0..16bd15082 100644 --- a/src/main/resources/addresources/values-tr-rTR/strings.xml +++ b/src/main/resources/addresources/values-tr-rTR/strings.xml @@ -147,6 +147,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Kanal yönergelerini gizle Kanal yönergeleri gizleniyor Kanal yönergeleri gösteriliyor + Çip rafını gizle + Çip rafı gizlendi + Çip rafı gösteriliyor Videoların altındaki genişletilebilir çentiği gizle Genişletilebilir çentikler gizleniyor Genişletilebilir çentikler gösteriliyor @@ -207,9 +210,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Sanatçı kartlarını gizle Sanatçı kartları gizlendi Sanatçı kartları gösteriliyor - Çip rafını gizle - Çip rafı gizlendi - Çip rafı gösteriliyor Nitelikler bölümünü gizle Öne çıkan yerler, Oyunlar ve Müzik bölümleri gizli Öne çıkan yerler, Oyunlar ve Müzik bölümleri görünür @@ -627,15 +627,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Konum etiketini gizle Konum etiketi gizli Konum etiketi görünür - Sesi oynatma listesine kaydetme butonunu gizle - Sesi oynatma listesine kaydetme butonu gizleniyor - Sesi oynatma listesine kaydetme butonu gösteriliyor - \"Bu sesi kullan\" düğmesini gizle - \"Bu sesi kullan\" düğmesi gizli - \"Bu sesi kullan\" düğmesi görünür + Müziği kaydet düğmesini gizle + Müziği kaydet düğmesi gizli + Müziği kaydet düğmesi görünür Arama önerilerini gizle Arama önerileri gizleniyor Arama önerileri gösteriliyor + Çıkartmaları gizle + Çıkartmalar gizli + Çıkartmalar görünür \"Beğen\" butonunu gizle \"Beğen\" butonu gizleniyor \"Beğen\" butonu gösteriliyor diff --git a/src/main/resources/addresources/values-uk-rUA/strings.xml b/src/main/resources/addresources/values-uk-rUA/strings.xml index 988f95aab..e6559c1a2 100644 --- a/src/main/resources/addresources/values-uk-rUA/strings.xml +++ b/src/main/resources/addresources/values-uk-rUA/strings.xml @@ -147,6 +147,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Приховати правила каналу Правила каналу приховано Правила каналу показуються + Приховати полицю фішок + Полицю фішок приховано + Полиця фішок показується Приховати розширювану фішку Розширювані фішки під відео приховано Розширювані фішки під відео показуються @@ -207,9 +210,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Приховати картки виконавця Картки виконавця приховано Картки виконавця показуються - Приховати полицю фішок - Полицю фішок приховано - Полиця фішок показується Приховати секції атрибутів Секції \"Місця на відео\", \"Ігри\" та \"Музика\" приховано Секції \"Місця на відео\", \"Ігри\" та \"Музика\" показуються @@ -630,12 +630,12 @@ This is because Crowdin requires temporarily flattening this file and removing t Приховати \"Зберегти музику\" Кнопку \"Зберегти музику\" приховано Кнопка \"Зберегти музику\" показується - Приховати \"Використати цю звукову доріжку\" - Кнопку \"Використати цю звукову доріжку\" приховано - Кнопка \"Використати цю звукову доріжку\" показується Приховати пропозиції пошуку Пропозиції пошуку приховано Пропозиції пошуку показуються + Приховати стікери + Стікери приховано + Стікери показуються Приховати \"Подобається\" Кнопку \"Подобається\" приховано Кнопка \"Подобається\" показується diff --git a/src/main/resources/addresources/values-vi-rVN/strings.xml b/src/main/resources/addresources/values-vi-rVN/strings.xml index adf4d85a0..c05368d0f 100644 --- a/src/main/resources/addresources/values-vi-rVN/strings.xml +++ b/src/main/resources/addresources/values-vi-rVN/strings.xml @@ -147,6 +147,9 @@ This is because Crowdin requires temporarily flattening this file and removing t Ẩn nguyên tắc của kênh Nguyên tắc của kênh được ẩn Nguyên tắc của kênh được hiện + Ẩn kệ danh mục được đề xuất + Kệ danh mục được đề xuất được ẩn + Kệ danh mục được đề xuất được hiện Ẩn bảng mở rộng dưới video Bảng mở rộng được ẩn Bảng mở rộng được hiện @@ -207,9 +210,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Ẩn thẻ nghệ sĩ Thẻ nghệ sĩ được ẩn Thẻ nghệ sĩ được hiện - Ẩn kệ danh mục được đề xuất - Kệ danh mục được đề xuất được ẩn - Kệ danh mục được đề xuất được hiện Ẩn phần thuộc tính Phần \'Địa điểm nổi bật\', Trò chơi và Âm nhạc được ẩn Phần \'Địa điểm nổi bật\', Trò chơi và Âm nhạc được hiện @@ -627,12 +627,6 @@ This is because Crowdin requires temporarily flattening this file and removing t Ẩn nhãn vị trí Nhãn vị trí được ẩn Nhãn vị trí được hiện - Ẩn nút lưu âm thanh vào danh sách phát - Lưu âm thanh vào danh sách phát được ẩn - Lưu âm thanh vào danh sách phát được hiện - Ẩn nút dùng bản âm thanh này - Nút dùng bản âm thanh này được ẩn - Nút dùng bản âm thanh này được hiện Ẩn đề xuất tìm kiếm Đề xuất tìm kiếm được ẩn Đề xuất tìm kiếm được hiện diff --git a/src/main/resources/addresources/values-zh-rCN/strings.xml b/src/main/resources/addresources/values-zh-rCN/strings.xml index f14a79498..559a9e942 100644 --- a/src/main/resources/addresources/values-zh-rCN/strings.xml +++ b/src/main/resources/addresources/values-zh-rCN/strings.xml @@ -146,6 +146,9 @@ This is because Crowdin requires temporarily flattening this file and removing t 隐藏频道指南 频道指南已隐藏 频道指南已显示 + 隐藏芯片收藏 + Chips 书架已隐藏 + Chips 书架已显示 隐藏视频下方的扩展面板 扩展面板已隐藏 扩展面板已显示 @@ -206,9 +209,6 @@ This is because Crowdin requires temporarily flattening this file and removing t 隐藏艺术家卡片 艺术家卡是隐藏的 显示艺术家卡片 - 隐藏芯片收藏 - Chips 书架已隐藏 - Chips 书架已显示 隐藏属性部分 “精选场地”、游戏和音乐部分被隐藏 显示“精选场地”、游戏和音乐部分 @@ -626,15 +626,15 @@ This is because Crowdin requires temporarily flattening this file and removing t 隐藏位置标签 位置标签已隐藏 显示位置标签 - 隐藏保存声音到播放列表按钮 - 保存声音到播放列表是隐藏的 - 将声音保存到播放列表显示 - 隐藏使用此声音按钮 - 使用此声音按钮隐藏 - 使用此声音按钮显示 + 隐藏保存音乐按钮 + 保存音乐已隐藏 + 保存音乐已显示 隐藏搜索建议 搜索建议已隐藏 显示搜索建议 + 隐藏貼圖 + 貼圖已隐藏 + 显示貼圖 隐藏像按钮 喜欢按钮已隐藏 显示喜欢按钮 diff --git a/src/main/resources/addresources/values-zh-rTW/strings.xml b/src/main/resources/addresources/values-zh-rTW/strings.xml index 80254fd78..4210ab297 100644 --- a/src/main/resources/addresources/values-zh-rTW/strings.xml +++ b/src/main/resources/addresources/values-zh-rTW/strings.xml @@ -44,7 +44,7 @@ This is because Crowdin requires temporarily flattening this file and removing t APK 構建日期已損壞 - 您想繼續嗎? + 確定要繼續嗎? 重設 套用並重新啟動 重新啟動 @@ -68,7 +68,7 @@ This is because Crowdin requires temporarily flattening this file and removing t 需要採取行動 MicroG GmsCore 沒有在背景執行的權限。\n\n請遵循適用於您手機的「Don\'t kill my app」嚮導,並將這些說明套用到您的 MicroG 安裝中。\n\n這是讓應用程式執行所必需做的。 開啟網站 - 請務必停用 MicroG GmsCore 的最佳化電池以避免意外問題。\n\n點擊繼續按鈕並停用最佳化電池。 + 請務必停用 MicroG GmsCore 的最佳化電池以避免意外問題。\n\n輕觸 [繼續] 並停用最佳化電池。 繼續 @@ -80,17 +80,17 @@ This is because Crowdin requires temporarily flattening this file and removing t 動態消息 播放器 通用版面 - 進度條 + 拖拽欄 滑動控制 其他 影片 - 除錯 - 啟用或停用除錯選項 - 除錯記錄檔 - 已啟用除錯記錄檔 - 已停用除錯記錄檔 + 偵錯 + 啟用或停用偵錯選項 + 偵錯記錄檔 + 已啟用偵錯記錄檔 + 已停用偵錯記錄檔 記錄檔協議緩衝區 除錯記錄檔會包含協議緩衝資訊 除錯記錄檔不會包含協議緩衝資訊 @@ -147,6 +147,9 @@ This is because Crowdin requires temporarily flattening this file and removing t 隱藏頻道規範 已隱藏頻道規範 已顯示頻道規範 + 隱藏章節櫃 + 已隱藏章節櫃 + 已顯示章節櫃 隱藏影片下方的章節選擇欄 已隱藏影片下方的章節選擇欄 已顯示影片下方的章節選擇欄 @@ -207,9 +210,6 @@ This is because Crowdin requires temporarily flattening this file and removing t 隱藏藝人卡 已隱藏藝人卡 已顯示藝人卡 - 隱藏章節櫃 - 已隱藏章節櫃 - 已顯示章節櫃 隱藏屬性區 已隱藏「特色地點」、遊戲和音樂區 已顯示「特色地點」、遊戲和音樂區 @@ -627,15 +627,15 @@ This is because Crowdin requires temporarily flattening this file and removing t 隱藏地區標籤 已隱藏地區標籤 已顯示地區標籤 - 隱藏儲存音訊到播放清單按鈕 - 已隱藏儲存音訊到播放清單按鈕 - 已顯示儲存音訊到播放清單按鈕 - 隱藏使用此聲音按鈕 - 已隱藏使用此聲音按鈕 - 已顯示使用此聲音按鈕 + 隱藏 [儲存音樂] 按鈕 + 已隱藏 [儲存音樂] 按鈕 + 已顯示 [顯示音樂] 按鈕 隱藏搜尋建議 已隱藏搜尋建議 已顯示搜尋建議 + 隱藏「Stickers」 + 已隱藏「Stickers」 + 已顯示「Stickers」 隱藏「喜歡」按鈕 已隱藏「喜歡」按鈕 已顯示「喜歡」按鈕 From bf9610894f0a9f9e751e2eed5b825c5d327a722c Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Sun, 29 Sep 2024 17:13:21 -0400 Subject: [PATCH 22/24] fix(YouTube - SponsorBlock): Fade out SB buttons without overlapping other buttons (#3719) --- .../PlayerControlsResourcePatch.kt | 31 ++++++------------- .../host/layout/youtube_controls_layout.xml | 2 +- 2 files changed, 10 insertions(+), 23 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsResourcePatch.kt index f78bc9259..9ff131f71 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsResourcePatch.kt @@ -1,7 +1,6 @@ package app.revanced.patches.youtube.misc.playercontrols import app.revanced.patcher.data.ResourceContext -import app.revanced.patcher.patch.PatchException import app.revanced.patcher.patch.ResourcePatch import app.revanced.patcher.patch.annotation.Patch import app.revanced.patcher.util.DomFileEditor @@ -69,29 +68,17 @@ object PlayerControlsResourcePatch : ResourcePatch(), Closeable { resourceContext.xmlEditor[hostingResourceStream], editor, ).use { - val document = editor.file - val children = document.getElementsByTagName("RelativeLayout").item(0).childNodes + val element = editor.file.childNodes.findElementByAttributeValueOrThrow( + "android:id", + "@id/player_video_heading" + ) - // Replace the startOf with the voting button view so that the button does not overlap - for (index in 1 until children.length) { - val view = children.item(index) - - // FIXME: This uses hard coded values that only works with SponsorBlock. - // If other top buttons are added by other patches, this code must be changed. - if (view.hasAttributes() && view.attributes.getNamedItem("android:id") - .nodeValue.endsWith("live_chat_overlay_button") - ) { - // voting button id from the voting button view from the youtube_controls_layout.xml host file - val votingButtonId = "@+id/revanced_sb_voting_button" - view.attributes.getNamedItem("android:layout_toStartOf").nodeValue = - votingButtonId - - return - } - } + // FIXME: This uses hard coded values that only works with SponsorBlock. + // If other top buttons are added by other patches, this code must be changed. + // voting button id from the voting button view from the youtube_controls_layout.xml host file + val votingButtonId = "@+id/revanced_sb_voting_button" + element.attributes.getNamedItem("android:layout_toStartOf").nodeValue = votingButtonId } - - throw PatchException("Could not find expected xml to modify") } /** diff --git a/src/main/resources/sponsorblock/host/layout/youtube_controls_layout.xml b/src/main/resources/sponsorblock/host/layout/youtube_controls_layout.xml index aec11d7c5..8db9fa664 100644 --- a/src/main/resources/sponsorblock/host/layout/youtube_controls_layout.xml +++ b/src/main/resources/sponsorblock/host/layout/youtube_controls_layout.xml @@ -22,7 +22,7 @@ android:layout_alignParentTop="true" android:layout_marginTop="2dp" android:layout_marginEnd="4dp" - android:layout_toStartOf="@+id/player_additional_view_container" + android:layout_toStartOf="@id/music_app_deeplink_button" android:padding="@dimen/controls_overlay_action_button_padding" android:src="@drawable/revanced_sb_logo" /> From a5eac62918355a2fd52e047dda1ae8411770fe93 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 29 Sep 2024 21:15:24 +0000 Subject: [PATCH 23/24] chore(release): 4.16.0-dev.7 [skip ci] # [4.16.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.6...v4.16.0-dev.7) (2024-09-29) ### Bug Fixes * **YouTube - SponsorBlock:** Fade out SB buttons without overlapping other buttons ([#3719](https://github.com/ReVanced/revanced-patches/issues/3719)) ([bf96108](https://github.com/ReVanced/revanced-patches/commit/bf9610894f0a9f9e751e2eed5b825c5d327a722c)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37ac3ac56..d3b85578c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [4.16.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.6...v4.16.0-dev.7) (2024-09-29) + + +### Bug Fixes + +* **YouTube - SponsorBlock:** Fade out SB buttons without overlapping other buttons ([#3719](https://github.com/ReVanced/revanced-patches/issues/3719)) ([bf96108](https://github.com/ReVanced/revanced-patches/commit/bf9610894f0a9f9e751e2eed5b825c5d327a722c)) + # [4.16.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v4.16.0-dev.5...v4.16.0-dev.6) (2024-09-29) diff --git a/gradle.properties b/gradle.properties index c7db1a71e..7622b7719 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 4.16.0-dev.6 +version = 4.16.0-dev.7 From 048812153655b7b3a996fe74de66fc3659ce92d3 Mon Sep 17 00:00:00 2001 From: ReVanced Bot Date: Mon, 30 Sep 2024 21:07:54 +0200 Subject: [PATCH 24/24] chore: Sync translations (#3721) --- .../resources/addresources/values-ar-rSA/strings.xml | 6 +++--- .../resources/addresources/values-az-rAZ/strings.xml | 6 ++++++ .../resources/addresources/values-el-rGR/strings.xml | 12 ++++++------ .../resources/addresources/values-ko-rKR/strings.xml | 6 +++--- .../resources/addresources/values-pt-rBR/strings.xml | 6 ++++++ .../resources/addresources/values-ru-rRU/strings.xml | 12 ++++++------ 6 files changed, 30 insertions(+), 18 deletions(-) diff --git a/src/main/resources/addresources/values-ar-rSA/strings.xml b/src/main/resources/addresources/values-ar-rSA/strings.xml index caa61bed6..df70bc480 100644 --- a/src/main/resources/addresources/values-ar-rSA/strings.xml +++ b/src/main/resources/addresources/values-ar-rSA/strings.xml @@ -628,13 +628,13 @@ This is because Crowdin requires temporarily flattening this file and removing t تم إخفاء تسمية الموقع يتم عرض تسمية الموقع إخفاء زر حفظ الموسيقى - حفظ الموسيقى مخفية - حفظ الموسيقى يظهر + تم إخفاء حفظ الموسيقى + يتم عرض حفظ الموسيقى إخفاء اقتراحات البحث تم إخفاء اقتراحات البحث يتم عرض اقتراحات البحث إخفاء الملصقات - الملصقات مخفية + تم إخفاء الملصقات يتم عرض الملصقات إخفاء زر أعجبني تم إخفاء زر أعجبني diff --git a/src/main/resources/addresources/values-az-rAZ/strings.xml b/src/main/resources/addresources/values-az-rAZ/strings.xml index 5ea12136d..34e9bb200 100644 --- a/src/main/resources/addresources/values-az-rAZ/strings.xml +++ b/src/main/resources/addresources/values-az-rAZ/strings.xml @@ -627,9 +627,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Məkan etiketini gizlət Məkan etiketi gizlidir Məkan etiketi göstərilir + \"Musiqini saxla\" düyməsini gizlət + \"Musiqini saxla\" gizlidir + \"Musiqini saxla\" göstərilir Axtarış təkliflərini gizlət Axtarış təklifləri gizlədilib Axtarış təklifləri göstərilir + Stikerləri gizlət + Stikerlər gizlidir + Stikerlər göstərilir \"Bəyən\" düyməsini gizlət Bəyənmə düyməsi gizlidir Bəyənmə düyməsi göstərilir diff --git a/src/main/resources/addresources/values-el-rGR/strings.xml b/src/main/resources/addresources/values-el-rGR/strings.xml index 7725d7dea..4857852b8 100644 --- a/src/main/resources/addresources/values-el-rGR/strings.xml +++ b/src/main/resources/addresources/values-el-rGR/strings.xml @@ -627,15 +627,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Ετικέτα τοποθεσίας Κρυμμένη Εμφανίζεται - Απόκρυψη κουμπιού αποθήκευσης μουσικής - Η αποθήκευση μουσικής είναι κρυμμένη - Η αποθήκευση μουσικής εμφανίζεται + Κουμπί «Αποθήκευση μουσικής» + Κρυμμένο + Εμφανίζεται Προτάσεις αναζήτησης Κρυμμένες Εμφανίζονται - Απόκρυψη αυτοκόλλητων - Τα αυτοκόλλητα είναι κρυμμένα - Τα αυτοκόλλητα εμφανίζονται + Αυτοκόλλητα + Κρυμμένα + Εμφανίζονται Κουμπί «Μου αρέσει» Κρυμμένο Εμφανίζεται diff --git a/src/main/resources/addresources/values-ko-rKR/strings.xml b/src/main/resources/addresources/values-ko-rKR/strings.xml index ccdea0564..e62666443 100644 --- a/src/main/resources/addresources/values-ko-rKR/strings.xml +++ b/src/main/resources/addresources/values-ko-rKR/strings.xml @@ -634,9 +634,9 @@ This is because Crowdin requires temporarily flattening this file and removing t 검색 추천 숨기기 검색 추천이 숨겨집니다 검색 추천이 표시됩니다 - Q&A 스티커 숨기기 - Q&A 스티커가 숨겨집니다 - Q&A 스티커가 표시됩니다 + 스티커 숨기기 + 스티커가 숨겨집니다 + 스티커가 표시됩니다 좋아요 버튼 숨기기 좋아요 버튼이 숨겨집니다 좋아요 버튼이 표시됩니다 diff --git a/src/main/resources/addresources/values-pt-rBR/strings.xml b/src/main/resources/addresources/values-pt-rBR/strings.xml index fdb3c45ff..fa745219b 100644 --- a/src/main/resources/addresources/values-pt-rBR/strings.xml +++ b/src/main/resources/addresources/values-pt-rBR/strings.xml @@ -628,9 +628,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Ocultar rótulo de localização Rótulo de localização está oculto Rótulo de localização é mostrado + Ocultar o botão de salvar música + Salvar música está oculto + Salvar música está visível Ocultar sugestões de busca Sugestões de pesquisa estão ocultas Sugestões de pesquisa são mostradas + Ocultar adesivos + Adesivos estão ocultos + Adesivos estão visíveis Ocultar botão gostei Botão gostei está oculto Botão gostei não está oculto diff --git a/src/main/resources/addresources/values-ru-rRU/strings.xml b/src/main/resources/addresources/values-ru-rRU/strings.xml index 44cdf7465..2af70696a 100644 --- a/src/main/resources/addresources/values-ru-rRU/strings.xml +++ b/src/main/resources/addresources/values-ru-rRU/strings.xml @@ -628,15 +628,15 @@ This is because Crowdin requires temporarily flattening this file and removing t Метка местоположения Метка местоположения в Shorts скрыта Метка местоположения в Shorts отображена - Скрыть кнопку сохранения музыки - Сохранение музыки скрыто - Музыка сохранена + Кнопка сохранения музыки + Кнопка сохранения музыки скрыта + Кнопка сохранения музыки отображена Поисковые подсказки Поисковые подсказки скрыты Поисковые подсказки отображены - Скрыть стикеры - Наклейки скрыты - Наклейки показываются + Стикеры + Стикеры скрыты + Стикеры отображены Кнопка \"Лайк\" Кнопка \"Лайк\" в Shorts скрыта Кнопка \"Лайк\" в Shorts отображена