Squashed commit of the following:

commit 2ece340746
Merge: f652976 ca84635
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Tue Aug 20 00:52:28 2024 -0700

    Merge pull request #358 from bhackel/gestures

    Gestures and Loop

commit ca84635cf4
Merge: 5066716 87d7b57
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Tue Aug 20 00:31:16 2024 -0700

    Merge branch 'main' into gestures

commit 5066716f7f
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Mon Aug 19 23:53:21 2024 -0700

    Localizations for Gestures

commit bed87298f6
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Sun Aug 18 22:25:52 2024 -0700

    Update Submodule

commit 87d7b576dd
Author: GitHub Actions <actions@github.com>
Date:   Tue Aug 20 00:53:21 2024 +0000

    updated submodules

commit f652976a53
Author: GitHub Actions <actions@github.com>
Date:   Tue Aug 20 00:44:56 2024 +0000

    updated submodules

commit 44d6ffe781
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Mon Aug 19 14:08:08 2024 -0700

    Create LICENSE

commit 023fafae15
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Sun Aug 18 18:17:32 2024 -0700

    Added YouLoop submodule to Tweaks/ folder

commit 4c5e2ee0e8
Author: GitHub Actions <actions@github.com>
Date:   Sun Aug 18 00:49:27 2024 +0000

    updated submodules

commit de89f7aca8
Author: GitHub Actions <actions@github.com>
Date:   Sat Aug 17 00:43:19 2024 +0000

    updated submodules

commit 36f9da844b
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 16 09:27:09 2024 -0700

    Add disable option

commit e63bc374cf
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 16 01:13:22 2024 -0700

    Fix defaults and text descriptions

commit 067ad5a373
Merge: b081d5b 6e8bbcb
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 16 01:40:45 2024 -0700

    Merge pull request #345 from bhackel/video-player

    Basic Video player

commit 6e8bbcb49e
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 16 01:01:33 2024 -0700

    Add localization

commit e21e026c30
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 16 00:32:22 2024 -0700

    Fix compile

commit 1647358a9e
Merge: feaaa07 2d82e0b
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 16 00:35:06 2024 -0700

    Merge branch 'main' into video-player

commit feaaa07e9e
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 16 00:33:37 2024 -0700

    Revert "Prototype 2"

    This reverts commit 8f578bb741.

commit f434239419
Merge: e626997 2d82e0b
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 16 00:26:24 2024 -0700

    Merge branch 'main' into gestures

commit e62699749d
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 16 00:25:24 2024 -0700

    Sensitivity and Deadzone settings

commit 4602b74e6f
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Thu Aug 15 23:15:18 2024 -0700

    Add deadzone

commit 6854f91c1e
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Thu Aug 15 10:45:27 2024 -0700

    Implement gesture selection

commit b081d5b52e
Author: GitHub Actions <actions@github.com>
Date:   Fri Aug 16 00:44:28 2024 +0000

    updated submodules

commit 8ed3d97d2d
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Wed Aug 14 23:56:27 2024 -0700

    Gesture refactor for settings

commit e92ada8427
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Wed Aug 14 22:20:36 2024 -0700

    Gesture settings

commit 8f578bb741
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Wed Aug 14 18:28:42 2024 -0700

    Prototype 2

commit 2d82e0b532
Author: GitHub Actions <actions@github.com>
Date:   Thu Aug 15 00:43:33 2024 +0000

    updated submodules

commit b963c807bb
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Wed Aug 14 09:15:43 2024 -0700

    Video player prototype

commit 10882e5d61
Merge: 4ed8e94 76f48a2
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Wed Aug 14 09:00:51 2024 -0700

    Merge branch 'main' into gestures

commit 4ed8e94880
Merge: b588b7f 9aa33a6
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Tue Aug 13 23:41:37 2024 -0700

    Merge branch 'main' into gestures

commit b588b7f6d0
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Tue Aug 13 22:02:23 2024 -0700

    Attempt seek gesture

commit 9aa33a676d
Author: GitHub Actions <actions@github.com>
Date:   Wed Aug 14 00:53:53 2024 +0000

    updated submodules

commit 76f48a2700
Author: GitHub Actions <actions@github.com>
Date:   Wed Aug 14 00:45:08 2024 +0000

    updated submodules

commit 45b7cd948e
Author: schweppes <schweppes0x@gmail.com>
Date:   Wed Aug 14 01:33:23 2024 +0200

    Bulgarian translations (#332)

    Co-authored-by: tonydalov <t.dalov@dictu.nl>

commit 4c24c0c336
Author: gototheskinny <51786709+gototheskinny@users.noreply.github.com>
Date:   Wed Aug 14 02:33:12 2024 +0300

    Turkish loc updated (#336)

commit dd88efc631
Merge: 6e609d5 e067e8d
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Mon Aug 12 23:05:35 2024 -0700

    Merge pull request #331 from bhackel/fix-oled-live-chat

    Fix OLED live chat

commit e067e8dec5
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Mon Aug 12 21:50:33 2024 -0700

    Fix OLED live chat

commit 6e609d56e7
Merge: 916bcf3 11faee3
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Mon Aug 12 22:43:28 2024 -0700

    Merge pull request #330 from bhackel/remove-speed-popup

    Remove speed popup

commit 11faee3f1e
Merge: 82e4f21 916bcf3
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Mon Aug 12 22:42:56 2024 -0700

    Merge branch 'main' into remove-speed-popup

    I used a translator, hopefully it is fine

commit 82e4f21d24
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Mon Aug 12 21:33:53 2024 -0700

    Add Hide Speed Toast

commit 916bcf33ff
Author: GitHub Actions <actions@github.com>
Date:   Tue Aug 13 00:46:14 2024 +0000

    updated submodules

commit 9d0fb16075
Author: Victor Alves <victoralves05@gmail.com>
Date:   Mon Aug 12 17:12:18 2024 -0300

    Update Portuguese localization (#326)

    * Update Portuguese Localization

commit 21df218f2f
Author: Balackburn <93828569+Balackburn@users.noreply.github.com>
Date:   Mon Aug 12 10:42:23 2024 +0200

    Updated Credits

commit f384a00e04
Author: GitHub Actions <actions@github.com>
Date:   Mon Aug 12 00:46:59 2024 +0000

    updated submodules

commit 10a536880b
Merge: 818005d 08c263f
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Sat Aug 10 05:28:47 2024 -0700

    Merge pull request #320 from bhackel/hud-and-collapse

    Copy Hide HUD and Hide Collapse Button

commit 08c263fdf0
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Sat Aug 10 04:07:47 2024 -0700

    Copy Hide HUD and Hide Collapse Button

commit 818005d73c
Merge: 37582ec 1a97587
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Sat Aug 10 03:48:54 2024 -0700

    Merge pull request #319 from bhackel/misc-features

    Misc features

commit 1a9758770d
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Sat Aug 10 02:34:42 2024 -0700

    Fix bugs

commit f64aab1b58
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Sat Aug 10 02:19:23 2024 -0700

    Fix build error

commit 762cd8f618
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Sat Aug 10 00:47:05 2024 -0700

    Remove YTLitePlus OLED Theme

commit ba13d1b987
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 9 22:44:51 2024 -0700

    Live Chat OLED dark mode

commit 753d690b78
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 9 22:38:19 2024 -0700

    Hide autoplay mini preview

commit c9875ec8b7
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 9 17:26:19 2024 -0700

    Fix localization, fix copy/paste switch

commit 11a3e75b0d
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 9 16:44:59 2024 -0700

    Default disable big mini player

commit 794fb561c9
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 9 16:29:34 2024 -0700

    Fix import export settings localization

commit 4f2b55a897
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 9 16:34:57 2024 -0700

    Hide comment previews by @arichornlover

commit 948ea5ff29
Author: GitHub Actions <actions@github.com>
Date:   Sat Aug 10 00:53:31 2024 +0000

    updated submodules

commit 37582ecbf8
Author: GitHub Actions <actions@github.com>
Date:   Sat Aug 10 00:44:53 2024 +0000

    updated submodules

commit 64c712d630
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 9 16:51:12 2024 -0700

    Attempt brightness and volume gestures

commit 91290efdfe
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Wed Aug 7 13:24:51 2024 -0700

    Allow other gestures

commit f2e7c234eb
Author: GitHub Actions <actions@github.com>
Date:   Fri Aug 9 00:45:23 2024 +0000

    updated submodules

commit e7523dc08d
Author: GitHub Actions <actions@github.com>
Date:   Thu Aug 8 00:44:57 2024 +0000

    updated submodules

commit 09ddc42e32
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Wed Aug 7 12:11:03 2024 -0700

    Add reporting option

commit d4679b8414
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Tue Aug 6 23:49:31 2024 -0700

    Attempt Volume Sliding

commit df3d09e81d
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Tue Aug 6 22:36:59 2024 -0700

    Gesture test using YTHFS code

commit d731dbddec
Author: arichornlover <78001398+arichornlover@users.noreply.github.com>
Date:   Tue Aug 6 21:06:02 2024 -0500

    Fix LowContrastMode description

    also added Version compatibility, LowContrastMode will not work once v17.38.10 is gone in the future.

commit 00bb15a868
Author: GitHub Actions <actions@github.com>
Date:   Wed Aug 7 00:45:08 2024 +0000

    updated submodules

commit 8a717e763a
Author: GitHub Actions <actions@github.com>
Date:   Tue Aug 6 00:44:29 2024 +0000

    updated submodules

commit 47562c543b
Author: ChuDucManh <89825108+manhchuduc@users.noreply.github.com>
Date:   Tue Aug 6 01:52:29 2024 +0700

    Update Localizable.strings (#305)

commit d27150b11d
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Mon Aug 5 03:16:34 2024 -0700

    Fix delete workflows

commit 46d6b163b9
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Mon Aug 5 03:09:41 2024 -0700

    Fix YouTube Extensions bug
This commit is contained in:
Balackburn 2024-08-20 10:58:28 +02:00
parent 523f95ef50
commit 61a90d0712
29 changed files with 1117 additions and 179 deletions

3
.gitmodules vendored
View file

@ -55,3 +55,6 @@
[submodule "Tweaks/YouTimeStamp"]
path = Tweaks/YouTimeStamp
url = https://github.com/arichornloverALT/YouTimeStamp.git
[submodule "Tweaks/YouLoop"]
path = Tweaks/YouLoop
url = https://github.com/bhackel/YouLoop

21
LICENSE Normal file
View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2024 YTLitePlus
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View file

@ -22,7 +22,7 @@ YTLitePlus_FRAMEWORKS = UIKit Security
include $(THEOS)/makefiles/common.mk
include $(THEOS_MAKE_PATH)/tweak.mk
SUBPROJECTS += Tweaks/Alderis Tweaks/iSponsorBlock Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTABConfig Tweaks/YouMute Tweaks/DontEatMyContent Tweaks/YTHoldForSpeed Tweaks/YTVideoOverlay Tweaks/YouQuality Tweaks/YouTimeStamp Tweaks/YouGroupSettings
SUBPROJECTS += Tweaks/Alderis Tweaks/iSponsorBlock Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTABConfig Tweaks/YouMute Tweaks/DontEatMyContent Tweaks/YTHoldForSpeed Tweaks/YTVideoOverlay Tweaks/YouQuality Tweaks/YouTimeStamp Tweaks/YouGroupSettings Tweaks/YouLoop
include $(THEOS_MAKE_PATH)/aggregate.mk
YTLITE_PATH = Tweaks/YTLite

159
README.md
View file

@ -26,122 +26,49 @@
# Credits
<table id='ytliteplus credit'>
<tr>
<td align="center">
<a href='https://github.com/dayanch96'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/293f1a61-00b8-424a-9e00-f520f5a88064' width='120px;'>
</a>
</td>
<td align="center">
<a href='https://github.com/arichorn'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/2753042f-9efa-404d-a719-4761ad48d323' width='120px'>
</a>
</td>
<td align="center">
<a href='https://github.com/balackburn'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/d08ccf99-d3e5-4388-833f-22632dc66fd2' width='120px'>
</td>
</a>
<td id='ssuesskind'>
<a href='https://github.com/ssuesskind'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/ed6bc6a0-ef55-4548-8d60-32d86f2aa9f3' width='120px;'>
</a>
<td align="center">
<a href='https://github.com/Deci8BelioS'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/8cca7bf9-4c52-4c25-99dd-2b26434b7deb' width='120px'>
</a>
<br>
</tr>
<br>
<tr>
<td align="center">
<a href='https://github.com/MiRO92'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/ca462139-3a55-4ce1-a774-ffd13c459c80' width='120px'>
</a>
<br>
</td>
<td align="center">
<a href='https://github.com/qnblackcat'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/20b0d6d9-d892-4af4-9762-6617d49743b8' width='120px'>
</a>
</td>
<td align="center">
<a href='https://github.com/PoomSmart'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/668fe74e-9da1-4115-8fd0-ed7c308976b3' width='120px'>
</a>
</td>
<td align="center">
<a href='https://github.com/level3tjg'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/b11fe92d-aceb-4aa1-88bf-7699c5f4ac5f' width='120px'>
</a>
</td>
<td align="center">
<a href='https://github.com/BandarHL'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/dc4f0597-017b-44c1-8b52-33ec168a56f3' width='120px'>
</a>
</td>
</tr>
<tr>
<td align="center">
<a href='https://github.com/Galactic-Dev'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/f489e91e-3b04-45d3-b094-68b83c43da25' width='120px'>
</a>
</td>
<td align="center">
<a href='https://github.com/julioverne'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/0f7336ea-7f54-4155-995f-dea58d39f022' width='120px'>
</a>
</td>
<td align="center">
<a href='https://github.com/hbang'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/2eec50db-e2df-4217-a230-5c5cc7223934' width='120px'>
</a>
</td>
<td align="center">
<a href='https://github.com/Lyvendia'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/36902aa9-1f81-403c-b9b5-ebbd9e8b9ef9' width='120px'>
</a>
</td>
<td align="center">
<a href='https://github.com/therealFoxster'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/60427fc8-e019-43d6-86ae-01ad8b4a1e77' width='120px'>
</a>
</td>
</tr>
<tr>
<td align="center">
<a href='https://github.com/ichitaso'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/6a1cb4b7-5eec-4cda-8bed-f5dea2408323' width='120px'>
</a>
</td>
<td align="center">
<a href='https://github.com/AhmedBafkir'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/55b270be-1d43-4e2c-81da-ee04d993d447' width='120px'>
</a>
</td>
<td align="center">
<a href='https://github.com/CokePokes'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/5a40346b-b652-4eca-955f-272baf45c6dd' width='120px'>
</a>
</td>
<td align="center">
<a href='https://github.com/ISnackable'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/5b5355b1-0a7d-4202-affe-725406e9af72' width='120px'>
</a>
</td>
<td align="center">
<a href='https://github.com/theos/theos'>
<img src='https://github.com/Balackburn/YTLitePlus/assets/93828569/e5c37588-95f4-4773-b3fe-40ba02499160' width='120px'>
</a>
</td>
</tr>
<table>
<tr>
<td align="center"><a href="https://github.com/dayanch96"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/dayanch96.png" width="100px;" alt="dayanch96"/></a></td>
<td align="center"><a href="https://github.com/Balackburn"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Balackburn.png" width="100px;" alt="Balackburn"/></a></td>
<td align="center"><a href="https://github.com/arichornloverALT"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/arichornloverALT.png" width="100px;" alt="arichornloverALT"/></a></td>
<td align="center"><a href="https://github.com/PoomSmart"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/PoomSmart.png" width="100px;" alt="PoomSmart"/></a></td>
<td align="center"><a href="https://github.com/qnblackcat"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/qnblackcat.png" width="100px;" alt="qnblackcat"/></a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/SKEIDs"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/SKEIDs.png" width="100px;" alt="SKEIDs"/></a></td>
<td align="center"><a href="https://github.com/asdfzxcvbn"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/asdfzxcvbn.png" width="100px;" alt="asdfzxcvbn"/></a></td>
<td align="center"><a href="https://github.com/matt911"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/matt911.png" width="100px;" alt="matt911"/></a></td>
<td align="center"><a href="https://github.com/bhackel"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/bhackel.png" width="100px;" alt="bhackel"/></a></td>
<td align="center"><a href="https://github.com/AlexInABox"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/AlexInABox.png" width="100px;" alt="AlexInABox"/></a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/Glenta"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Glenta.png" width="100px;" alt="Glenta"/></a></td>
<td align="center"><a href="https://github.com/gototheskinny"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/gototheskinny.png" width="100px;" alt="gototheskinny"/></a></td>
<td align="center"><a href="https://github.com/MrAlucardDante"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/MrAlucardDante.png" width="100px;" alt="MrAlucardDante"/></a></td>
<td align="center"><a href="https://github.com/Galactic-Dev"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Galactic-Dev.png" width="100px;" alt="Galactic-Dev"/></a></td>
<td align="center"><a href="https://github.com/AhmedBafkir"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/AhmedBafkir.png" width="100px;" alt="AhmedBafkir"/></a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/MiRO92"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/MiRO92.png" width="100px;" alt="MiRO92"/></a></td>
<td align="center"><a href="https://github.com/ichitaso"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/ichitaso.png" width="100px;" alt="ichitaso"/></a></td>
<td align="center"><a href="https://github.com/Deci8BelioS"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Deci8BelioS.png" width="100px;" alt="Deci8BelioS"/></a></td>
<td align="center"><a href="https://github.com/julioverne"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/julioverne.png" width="100px;" alt="julioverne"/></a></td>
<td align="center"><a href="https://github.com/therealFoxster"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/therealFoxster.png" width="100px;" alt="therealFoxster"/></a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/Lyvendia"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Lyvendia.png" width="100px;" alt="Lyvendia"/></a></td>
<td align="center"><a href="https://github.com/ssuesskind"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/ssuesskind.png" width="100px;" alt="ssuesskind"/></a></td>
<td align="center"><a href="https://github.com/hbang"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/hbang.png" width="100px;" alt="hbang"/></a></td>
<td align="center"><a href="https://github.com/level3tjg"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/level3tjg.png" width="100px;" alt="level3tjg"/></a></td>
<td align="center"><a href="https://github.com/zSaaiq"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/zSaaiq.png" width="100px;" alt="zSaaiq"/></a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/ISnackable"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/ISnackable.png" width="100px;" alt="ISnackable"/></a></td>
<td align="center"><a href="https://github.com/VictorxD70"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/VictorxD70.png" width="100px;" alt="VictorxD70"/></a></td>
<td align="center"><a href="https://github.com/Macleykun"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Macleykun.png" width="100px;" alt="Macleykun"/></a></td>
<td align="center"><a href="https://github.com/BandarHL"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/BandarHL.png" width="100px;" alt="BandarHL"/></a></td>
<td align="center"><a href="https://github.com/CokePokes"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/CokePokes.png" width="100px;" alt="CokePokes"/></a></td>
</tr>
</table>
# Features

View file

@ -1,9 +1,6 @@
#import "../YTLitePlus.h"
//
static BOOL IsEnabled(NSString *key) {
return [[NSUserDefaults standardUserDefaults] boolForKey:key];
}
// Low Contrast Mode
static int contrastMode() {
return [[NSUserDefaults standardUserDefaults] integerForKey:@"lcm"];
}

View file

@ -32,12 +32,6 @@
settingItemId:0]
*/
static BOOL IsEnabled(NSString *key) {
return [[NSUserDefaults standardUserDefaults] boolForKey:key];
}
static int GetSelection(NSString *key) {
return [[NSUserDefaults standardUserDefaults] integerForKey:key];
}
static int contrastMode() {
return [[NSUserDefaults standardUserDefaults] integerForKey:@"lcm"];
}
@ -47,6 +41,8 @@ static int appVersionSpoofer() {
@interface YTSettingsSectionItemManager (YTLitePlus)
- (void)updateYTLitePlusSectionWithEntry:(id)entry;
- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentsAtURLs:(NSArray<NSURL *> *)urls;
- (void)documentPickerWasCancelled:(UIDocumentPickerViewController *)controller;
@end
extern NSBundle *YTLitePlusBundle();
@ -80,7 +76,7 @@ static const NSInteger YTLiteSection = 789;
%end
// Settings
// Add YTLitePlus to the settings list
%hook YTAppSettingsPresentationData
+ (NSArray *)settingsCategoryOrder {
NSArray *order = %orig;
@ -108,14 +104,15 @@ static const NSInteger YTLiteSection = 789;
Class YTSettingsSectionItemClass = %c(YTSettingsSectionItem);
YTSettingsViewController *settingsViewController = [self valueForKey:@"_settingsViewControllerDelegate"];
// Add item for going to the YTLitePlus GitHub page
YTSettingsSectionItem *main = [%c(YTSettingsSectionItem)
itemWithTitle:[NSString stringWithFormat:LOC(@"VERSION"), @(OS_STRINGIFY(TWEAK_VERSION))]
titleDescription:LOC(@"VERSION_CHECK")
accessibilityIdentifier:nil
detailTextBlock:nil
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
return [%c(YTUIUtils) openURL:[NSURL URLWithString:@"https://github.com/YTLitePlus/YTLitePlus/releases/latest"]];
}];
itemWithTitle:[NSString stringWithFormat:LOC(@"VERSION"), @(OS_STRINGIFY(TWEAK_VERSION))]
titleDescription:LOC(@"VERSION_CHECK")
accessibilityIdentifier:nil
detailTextBlock:nil
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
return [%c(YTUIUtils) openURL:[NSURL URLWithString:@"https://github.com/YTLitePlus/YTLitePlus/releases/latest"]];
}];
[sectionItems addObject:main];
YTSettingsSectionItem *copySettings = [%c(YTSettingsSectionItem)
@ -197,6 +194,29 @@ static const NSInteger YTLiteSection = 789;
];
[sectionItems addObject:pasteSettings];
YTSettingsSectionItem *videoPlayer = [%c(YTSettingsSectionItem)
itemWithTitle:LOC(@"VIDEO_PLAYER")
titleDescription:LOC(@"VIDEO_PLAYER_DESC")
accessibilityIdentifier:nil
detailTextBlock:nil
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
// Access the current view controller
UIViewController *settingsViewController = [self valueForKey:@"_settingsViewControllerDelegate"];
if (settingsViewController) {
// Present the video picker
UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[(NSString *)kUTTypeMovie, (NSString *)kUTTypeVideo] inMode:UIDocumentPickerModeImport];
documentPicker.delegate = (id<UIDocumentPickerDelegate>)self;
documentPicker.allowsMultipleSelection = NO;
[settingsViewController presentViewController:documentPicker animated:YES completion:nil];
} else {
NSLog(@"settingsViewController is nil");
}
return YES; // Return YES to indicate that the action was handled
}
];
[sectionItems addObject:videoPlayer];
/*
YTSettingsSectionItem *appIcon = [%c(YTSettingsSectionItem)
itemWithTitle:LOC(@"CHANGE_APP_ICON")
@ -212,6 +232,179 @@ static const NSInteger YTLiteSection = 789;
[sectionItems addObject:appIcon];
*/
# pragma mark - Player Gestures - @bhackel
// Helper to get the selected gesture mode
static NSString* (^sectionGestureSelectedModeToString)(GestureMode) = ^(GestureMode sectionIndex) {
switch (sectionIndex) {
case GestureModeVolume:
return LOC(@"VOLUME");
case GestureModeBrightness:
return LOC(@"BRIGHTNESS");
case GestureModeSeek:
return LOC(@"SEEK");
case GestureModeDisabled:
return LOC(@"DISABLED");
default:
return @"Invalid index - Report bug";
}
};
// Helper to generate checkmark setting items for selecting gesture modes
static YTSettingsSectionItem* (^gestureCheckmarkSettingItem)(NSInteger, NSString *) = ^(NSInteger idx, NSString *key) {
return [YTSettingsSectionItemClass
checkmarkItemWithTitle:sectionGestureSelectedModeToString(idx)
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:idx forKey:key];
[settingsViewController reloadData];
return YES;
}
];
};
// Helper to generate a section item for selecting a gesture mode
YTSettingsSectionItem *(^createSectionGestureSelector)(NSString *, NSString *) = ^YTSettingsSectionItem *(NSString *sectionLabel, NSString *sectionKey) {
return [YTSettingsSectionItemClass itemWithTitle:LOC(sectionLabel)
accessibilityIdentifier:nil
detailTextBlock:^NSString *() {
return sectionGestureSelectedModeToString(GetSelection(sectionKey));
}
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
gestureCheckmarkSettingItem(0, sectionKey), // Volume
gestureCheckmarkSettingItem(1, sectionKey), // Brightness
gestureCheckmarkSettingItem(2, sectionKey), // Seek
gestureCheckmarkSettingItem(3, sectionKey) // Disabled
];
// Present picker when selecting this settings item
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc]
initWithNavTitle:LOC(sectionLabel)
pickerSectionTitle:nil
rows:rows
selectedItemIndex:GetSelection(sectionKey)
parentResponder:[self parentResponder]
];
[settingsViewController pushViewController:picker];
return YES;
}
];
};
// Configuration picker for deadzone to pick from 0 to 100 pixels with interval of 10
NSMutableArray<NSNumber *> *deadzoneValues = [NSMutableArray array];
for (CGFloat value = 0; value <= 100; value += 10) {
[deadzoneValues addObject:@(value)];
}
YTSettingsSectionItem *deadzonePicker = [YTSettingsSectionItemClass
itemWithTitle:LOC(@"DEADZONE")
titleDescription:LOC(@"DEADZONE_DESC")
accessibilityIdentifier:nil
detailTextBlock:^NSString *() {
return [NSString stringWithFormat:@"%ld px", (long)GetFloat(@"playerGesturesDeadzone")];
}
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
// Generate rows for deadzone picker using the predefined array
NSMutableArray <YTSettingsSectionItem *> *deadzoneRows = [NSMutableArray array];
for (NSNumber *deadzoneValue in deadzoneValues) {
CGFloat deadzone = [deadzoneValue floatValue];
[deadzoneRows addObject:[YTSettingsSectionItemClass
checkmarkItemWithTitle:[NSString stringWithFormat:@"%ld px", (long)deadzone]
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setFloat:deadzone forKey:@"playerGesturesDeadzone"];
[settingsViewController reloadData];
return YES;
}
]];
}
// Determine the index of the currently selected deadzone
CGFloat currentDeadzone = GetFloat(@"playerGesturesDeadzone");
NSUInteger selectedIndex = [deadzoneValues indexOfObject:@(currentDeadzone)];
if (selectedIndex == NSNotFound) {
selectedIndex = 0; // Default to the first item if the current deadzone is not found
}
// Present deadzone picker when selecting this settings item
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc]
initWithNavTitle:LOC(@"DEADZONE")
pickerSectionTitle:nil
rows:deadzoneRows
selectedItemIndex:selectedIndex
parentResponder:[self parentResponder]
];
[settingsViewController pushViewController:picker];
return YES;
}
];
// Configuration picker for sensitivity to pick from 0.5 to 2.0 with interval of 0.1
NSMutableArray<NSNumber *> *sensitivityValues = [NSMutableArray array];
for (CGFloat value = 0.5; value <= 2.0; value += 0.1) {
[sensitivityValues addObject:@(value)];
}
YTSettingsSectionItem *sensitivityPicker = [YTSettingsSectionItemClass
itemWithTitle:LOC(@"SENSITIVITY")
titleDescription:LOC(@"SENSITIVITY_DESC")
accessibilityIdentifier:nil
detailTextBlock:^NSString *() {
return [NSString stringWithFormat:@"%.1f", GetFloat(@"playerGesturesSensitivity")];
}
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
// Generate rows for sensitivity picker using the predefined array
NSMutableArray <YTSettingsSectionItem *> *sensitivityRows = [NSMutableArray array];
for (NSNumber *sensitivityValue in sensitivityValues) {
CGFloat sensitivity = [sensitivityValue floatValue];
[sensitivityRows addObject:[YTSettingsSectionItemClass
checkmarkItemWithTitle:[NSString stringWithFormat:@"%.1f", sensitivity]
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setFloat:sensitivity forKey:@"playerGesturesSensitivity"];
[settingsViewController reloadData];
return YES;
}
]];
}
// Determine the index of the currently selected sensitivity
CGFloat currentSensitivity = GetFloat(@"playerGesturesSensitivity");
NSUInteger selectedIndex = [sensitivityValues indexOfObject:@(currentSensitivity)];
if (selectedIndex == NSNotFound) {
selectedIndex = 0; // Default to the first item if the current sensitivity is not found
}
// Present sensitivity picker
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc]
initWithNavTitle:LOC(@"SENSITIVITY")
pickerSectionTitle:nil
rows:sensitivityRows
selectedItemIndex:selectedIndex
parentResponder:[self parentResponder]
];
[settingsViewController pushViewController:picker];
return YES;
}
];
// Create and add items to the high level gestures menu
YTSettingsSectionItem *playerGesturesGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"PLAYER_GESTURES_TITLE") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
// Description header item
[YTSettingsSectionItemClass
itemWithTitle:nil
titleDescription:LOC(@"PLAYER_GESTURES_DESC")
accessibilityIdentifier:nil
detailTextBlock:nil
selectBlock:nil
],
// Toggle for enabling gestures
BASIC_SWITCH(LOC(@"PLAYER_GESTURES_TOGGLE"), nil, @"playerGestures_enabled"),
// Pickers for each gesture section
createSectionGestureSelector(@"TOP_SECTION", @"playerGestureTopSelection"),
createSectionGestureSelector(@"MIDDLE_SECTION", @"playerGestureMiddleSelection"),
createSectionGestureSelector(@"BOTTOM_SECTION", @"playerGestureBottomSelection"),
// Pickers for configuration settings
deadzonePicker,
sensitivityPicker
];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"Player Gestures (Beta)") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
return YES;
}];
[sectionItems addObject:playerGesturesGroup];
# pragma mark - Video Controls Overlay Options
YTSettingsSectionItem *videoControlOverlayGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"VIDEO_CONTROLS_OVERLAY_OPTIONS") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
@ -233,7 +426,7 @@ static const NSInteger YTLiteSection = 789;
BASIC_SWITCH(LOC(@"HIDE_AUTOPLAY_MINI_PREVIEW"), LOC(@"HIDE_AUTOPLAY_MINI_PREVIEW_DESC"), @"hideAutoplayMiniPreview_enabled"),
BASIC_SWITCH(LOC(@"HIDE_HUD_MESSAGES"), LOC(@"HIDE_HUD_MESSAGES_DESC"), @"hideHUD_enabled"),
BASIC_SWITCH(LOC(@"HIDE_COLLAPSE_BUTTON"), LOC(@"HIDE_COLLAPSE_BUTTON_DESC"), @"disableCollapseButton_enabled"),
BASIC_SWITCH(LOC(@"HIDE_SPEED_TOAST"), LOC(@"HIDE_SPEED_TOAST_DESC"), @"hideSpeedToast_enabled"),
];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"VIDEO_CONTROLS_OVERLAY_OPTIONS") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
@ -479,4 +672,31 @@ static const NSInteger YTLiteSection = 789;
}
%orig;
}
// Implement the delegate method for document picker
%new
- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentsAtURLs:(NSArray<NSURL *> *)urls {
NSURL *pickedURL = [urls firstObject];
if (pickedURL) {
// Use AVPlayerViewController to play the video
AVPlayer *player = [AVPlayer playerWithURL:pickedURL];
AVPlayerViewController *playerViewController = [[AVPlayerViewController alloc] init];
playerViewController.player = player;
UIViewController *settingsViewController = [self valueForKey:@"_settingsViewControllerDelegate"];
if (settingsViewController) {
[settingsViewController presentViewController:playerViewController animated:YES completion:^{
[player play];
}];
}
}
}
%new
- (void)documentPickerWasCancelled:(UIDocumentPickerViewController *)controller {
// Handle cancellation if needed
NSLog(@"Document picker was cancelled");
}
%end

View file

@ -1,8 +1,5 @@
#import "../YTLitePlus.h"
static BOOL IsEnabled(NSString *key) {
return [[NSUserDefaults standardUserDefaults] boolForKey:key];
}
static BOOL isDarkMode() {
return ([[NSUserDefaults standardUserDefaults] integerForKey:@"page_style"] == 1);
}

View file

@ -1,9 +1,6 @@
#import "../YTLitePlus.h"
//
static BOOL IsEnabled(NSString *key) {
return [[NSUserDefaults standardUserDefaults] boolForKey:key];
}
static int appVersionSpoofer() {
return [[NSUserDefaults standardUserDefaults] integerForKey:@"versionSpoofer"];
}

@ -1 +1 @@
Subproject commit 0f4c6b7f5960308161c870d9aab30905fe8145cc
Subproject commit 8578263c9f7caf7a22bd9364648e218974ee543c

@ -1 +1 @@
Subproject commit 17c2035ea9c8334f2d9154f114b6590928e93521
Subproject commit 02a5c915a7f4183307812a94759d73f25e7fdba6

1
Tweaks/YouLoop Submodule

@ -0,0 +1 @@
Subproject commit 5a424d7531c0d2f82d258b8e8c580e153a93fcdd

@ -1 +1 @@
Subproject commit 171f681e235a1f7176cde31a95e6454fc00418c3
Subproject commit 850e939ce7053f593ed477e83ec914c98669be46

@ -1 +1 @@
Subproject commit b9d1cfff8ca6814723889bade011f3fa4675d46d
Subproject commit 57ba42815efe292b3c9c99e8afadf13bbb13fff1

View file

@ -6,6 +6,10 @@
#import <sys/utsname.h>
#import <substrate.h>
#import <rootless.h>
#import <MediaPlayer/MediaPlayer.h>
#import <AVFoundation/AVFoundation.h>
#import <AVKit/AVKit.h> // For AVPlayer and AVPlayerViewController
#import <MobileCoreServices/MobileCoreServices.h> // For kUTTypeMovie and kUTTypeVideo
#import "Tweaks/FLEX/FLEX.h"
#import "Tweaks/YouTubeHeader/YTAppDelegate.h"
@ -40,6 +44,8 @@
#import "Tweaks/YouTubeHeader/YTPlayerBarController.h"
#import "Tweaks/YouTubeHeader/YTResponder.h"
#import "Tweaks/YouTubeHeader/YTMainAppControlsOverlayView.h"
#import "Tweaks/YouTubeHeader/YTMultiSizeViewController.h"
#import "Tweaks/YouTubeHeader/YTWatchLayerViewController.h"
#define LOC(x) [tweakBundle localizedStringForKey:x value:nil table:nil]
#define YT_BUNDLE_ID @"com.google.ios.youtube"
@ -48,6 +54,30 @@
#define IS_ENABLED(k) [[NSUserDefaults standardUserDefaults] boolForKey:k]
#define APP_THEME_IDX [[NSUserDefaults standardUserDefaults] integerForKey:@"appTheme"]
// Avoid issues with multiple includes of this file
#pragma once
// Helper methods for key retrieval
#define IsEnabled(key) [[NSUserDefaults standardUserDefaults] boolForKey:key]
#define GetSelection(key) [[NSUserDefaults standardUserDefaults] integerForKey:key]
#define GetFloat(key) [[NSUserDefaults standardUserDefaults] floatForKey:key]
// Player Gesture selected mode enum
typedef NS_ENUM(NSUInteger, GestureMode) {
GestureModeVolume,
GestureModeBrightness,
GestureModeSeek,
GestureModeDisabled
};
// Gesture Section Enum
typedef NS_ENUM(NSUInteger, GestureSection) {
GestureSectionTop,
GestureSectionMiddle,
GestureSectionBottom,
GestureSectionInvalid
};
// YTSpeed
@interface YTVarispeedSwitchControllerOption : NSObject
- (id)initWithTitle:(id)title rate:(float)rate;
@ -122,6 +152,17 @@
@property id <YTResponder> parentResponder;
@end
// Player Gestures - @bhackel
@interface YTPlayerViewController (YTLitePlus) <UIGestureRecognizerDelegate>
@property (nonatomic, retain) UIPanGestureRecognizer *YTLitePlusPanGesture;
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer;
@end
@interface YTWatchFullscreenViewController : YTMultiSizeViewController
@end
@interface MPVolumeController : NSObject
@property (nonatomic, assign, readwrite) float volumeValue;
@end
// Hide Collapse Button - @arichornlover
@interface YTMainAppControlsOverlayView (YTLitePlus)
@property (nonatomic, assign, readwrite) YTQTMButton *watchCollapseButton;

View file

@ -33,11 +33,6 @@ static NSString *accessGroupID() {
return accessGroup;
}
//
static BOOL IsEnabled(NSString *key) {
return [[NSUserDefaults standardUserDefaults] boolForKey:key];
}
# pragma mark - Tweaks
// Activate FLEX
@ -179,6 +174,7 @@ BOOL isSelf() {
%end
%end
// A/B flags
%hook YTColdConfig
- (BOOL)respectDeviceCaptionSetting { return NO; } // YouRememberCaption: https://poomsmart.github.io/repo/depictions/youremembercaption.html
@ -194,6 +190,30 @@ BOOL isSelf() {
- (BOOL)shouldShowUpgradeDialog { return NO;}
%end
// Hide Speed Toast - @bhackel
// YTLite Speed Toast
%hook PlayerToast
- (void)showPlayerToastWithText:(id)text
value:(CGFloat)value
style:(NSInteger)style
onView:(id)view
{
if (IsEnabled(@"hideSpeedToast_enabled")) {
return;
}
%orig;
}
%end
// Default YouTube Speed Toast
%hook YTInlinePlayerScrubUserEducationView
- (void)setVisible:(BOOL)visible {
if (IsEnabled(@"hideSpeedToast_enabled")) {
return;
}
%orig;
}
%end
// Hide Home Tab - @bhackel
%group gHideHomeTab
%hook YTPivotBarView
@ -557,10 +577,14 @@ BOOL isTabSelected = NO;
[self setNeedsLayout];
[self removeFromSuperview];
}
// Live chat OLED dark mode - @bhackel
if (([[%c(YTLUserDefaults) standardUserDefaults] boolForKey:@"oledTheme"] // YTLite OLED Theme
|| [[NSUserDefaults standardUserDefaults] integerForKey:@"appTheme"] == 1 // YTLitePlus OLED Theme
) && [self.accessibilityIdentifier isEqualToString:@"eml.live_chat_text_message"]) {
CGFloat alpha;
if ([[%c(YTLUserDefaults) standardUserDefaults] boolForKey:@"oledTheme"] // YTLite OLED Theme
&& [self.accessibilityIdentifier isEqualToString:@"eml.live_chat_text_message"] // Live chat text message
&& [self.backgroundColor getWhite:nil alpha:&alpha] // Check if color is grayscale and get alpha
&& alpha != 0.0) // Ignore shorts live chat
{
self.backgroundColor = [UIColor blackColor];
}
}
@ -615,6 +639,213 @@ BOOL isTabSelected = NO;
}
%end
// Gestures - @bhackel
%group playerGestures
%hook YTWatchLayerViewController
// invoked when the player view controller is either created or destroyed
- (void)watchController:(YTWatchController *)watchController didSetPlayerViewController:(YTPlayerViewController *)playerViewController {
if (playerViewController) {
// check to see if the pan gesture is already created
if (!playerViewController.YTLitePlusPanGesture) {
playerViewController.YTLitePlusPanGesture = [[UIPanGestureRecognizer alloc] initWithTarget:playerViewController
action:@selector(YTLitePlusHandlePanGesture:)];
playerViewController.YTLitePlusPanGesture.delegate = playerViewController;
[playerViewController.playerView addGestureRecognizer:playerViewController.YTLitePlusPanGesture];
}
}
%orig;
}
%end
%hook YTPlayerViewController
// the pan gesture that will be created and added to the player view
%property (nonatomic, retain) UIPanGestureRecognizer *YTLitePlusPanGesture;
%new
- (void)YTLitePlusHandlePanGesture:(UIPanGestureRecognizer *)panGestureRecognizer {
// Haptic feedback generator
static UIImpactFeedbackGenerator *feedbackGenerator = [[UIImpactFeedbackGenerator alloc] initWithStyle:UIImpactFeedbackStyleMedium];
// Variables for storing initial values to be adjusted
static float initialVolume;
static float initialBrightness;
static CGFloat currentTime;
// Flag to determine if the pan gesture is valid
static BOOL isValidHorizontalPan = NO;
// Variable to store the section of the screen the gesture is in
static GestureSection gestureSection = GestureSectionInvalid;
// Variable to track the start location of the whole pan gesture
static CGPoint startLocation;
// Variable to track the X translation when exiting the deadzone
static CGFloat deadzoneStartingXTranslation;
// Constant for the deadzone radius that can be changed in the settings
static CGFloat deadzoneRadius = (CGFloat)GetFloat(@"playerGesturesDeadzone");
// Constant for the sensitivity factor that can be changed in the settings
static CGFloat sensitivityFactor = (CGFloat)GetFloat(@"playerGesturesSensitivity");
/***** Helper functions *****/
// Helper function to adjust brightness
void (^adjustBrightness)(CGFloat, CGFloat) = ^(CGFloat translationX, CGFloat initialBrightness) {
float newBrightness = initialBrightness + ((translationX / 1000.0) * sensitivityFactor);
newBrightness = fmaxf(fminf(newBrightness, 1.0), 0.0);
[[UIScreen mainScreen] setBrightness:newBrightness];
};
// Helper function to adjust volume
void (^adjustVolume)(CGFloat, CGFloat) = ^(CGFloat translationX, CGFloat initialVolume) {
float newVolume = initialVolume + ((translationX / 1000.0) * sensitivityFactor);
newVolume = fmaxf(fminf(newVolume, 1.0), 0.0);
// https://stackoverflow.com/questions/50737943/how-to-change-volume-programmatically-on-ios-11-4
MPVolumeView *volumeView = [[MPVolumeView alloc] init];
UISlider *volumeViewSlider = nil;
for (UIView *view in volumeView.subviews) {
if ([view isKindOfClass:[UISlider class]]) {
volumeViewSlider = (UISlider *)view;
break;
}
}
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
volumeViewSlider.value = newVolume;
});
};
// Helper function to adjust seek time
void (^adjustSeek)(CGFloat, CGFloat) = ^(CGFloat translationX, CGFloat currentTime) {
// Calculate a seek fraction based on the horizontal translation
CGFloat totalDuration = self.currentVideoTotalMediaTime;
CGFloat viewWidth = self.view.bounds.size.width;
CGFloat seekFraction = (translationX / viewWidth);
// Seek to the new time based on the calculated offset
CGFloat sensitivityFactor = 1; // Adjust this value to make seeking less sensitive
seekFraction = sensitivityFactor * seekFraction;
CGFloat seekTime = currentTime + totalDuration * seekFraction;
[self seekToTime:seekTime];
};
// Helper function to run the selected gesture action
void (^runSelectedGesture)(NSString*, CGFloat, CGFloat, CGFloat, CGFloat)
= ^(NSString *sectionKey, CGFloat translationX, CGFloat initialBrightness, CGFloat initialVolume, CGFloat currentTime) {
// Determine the selected gesture mode using the section key
GestureMode selectedGestureMode = (GestureMode)GetSelection(sectionKey);
// Handle the gesture action based on the selected mode
switch (selectedGestureMode) {
case GestureModeVolume:
adjustVolume(translationX, initialVolume);
break;
case GestureModeBrightness:
adjustBrightness(translationX, initialBrightness);
break;
case GestureModeSeek:
adjustSeek(translationX, currentTime);
break;
case GestureModeDisabled:
// Do nothing if the gesture is disabled
break;
default:
// Show an alert if the gesture mode is invalid
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Invalid Gesture Mode" message:@"Please report this bug." preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil];
[alertController addAction:okAction];
[self presentViewController:alertController animated:YES completion:nil];
break;
}
};
/***** End of Helper functions *****/
// Handle gesture based on current gesture state
if (panGestureRecognizer.state == UIGestureRecognizerStateBegan) {
// Get the gesture's start position
startLocation = [panGestureRecognizer locationInView:self.view];
CGFloat viewHeight = self.view.bounds.size.height;
// Determine the section based on the start position
// by dividing the view into thirds
if (startLocation.y <= viewHeight / 3.0) {
gestureSection = GestureSectionTop;
// Cancel the gesture if the mode is disabled
if (GetSelection(@"playerGestureTopSelection") == GestureModeDisabled) {
panGestureRecognizer.state = UIGestureRecognizerStateCancelled;
return;
}
} else if (startLocation.y <= 2 * viewHeight / 3.0) {
gestureSection = GestureSectionMiddle;
// Cancel the gesture if the mode is disabled
if (GetSelection(@"playerGestureMiddleSelection") == GestureModeDisabled) {
panGestureRecognizer.state = UIGestureRecognizerStateCancelled;
return;
}
} else if (startLocation.y <= viewHeight) {
gestureSection = GestureSectionBottom;
// Cancel the gesture if the mode is disabled
if (GetSelection(@"playerGestureBottomSelection") == GestureModeDisabled) {
panGestureRecognizer.state = UIGestureRecognizerStateCancelled;
return;
}
} else {
gestureSection = GestureSectionInvalid;
}
// Deactive the activity flag
isValidHorizontalPan = NO;
}
if (panGestureRecognizer.state == UIGestureRecognizerStateChanged) {
// Determine if the gesture is predominantly horizontal
CGPoint translation = [panGestureRecognizer translationInView:self.view];
if (!isValidHorizontalPan) {
if (fabs(translation.x) > fabs(translation.y)) {
// Check if the touch has moved outside the deadzone
CGFloat distanceFromStart = hypot(translation.x, translation.y);
if (distanceFromStart < deadzoneRadius) {
// If within the deadzone, don't activate the pan gesture
return;
}
// If outside the deadzone, activate the pan gesture and store the initial values
isValidHorizontalPan = YES;
deadzoneStartingXTranslation = translation.x;
initialBrightness = [UIScreen mainScreen].brightness;
initialVolume = [[AVAudioSession sharedInstance] outputVolume];
currentTime = self.currentVideoMediaTime;
// Provide haptic feedback to indicate a gesture start
[feedbackGenerator prepare];
[feedbackGenerator impactOccurred];
} else {
// Cancel the gesture if the translation is not horizontal
panGestureRecognizer.state = UIGestureRecognizerStateCancelled;
return;
}
}
// Handle the gesture based on the identified section
if (isValidHorizontalPan) {
// Adjust the X translation based on the value hit after
// exiting the deadzone
CGFloat adjustedTranslationX = translation.x - deadzoneStartingXTranslation;
// Pass the adjusted translation to the selected gesture
if (gestureSection == GestureSectionTop) {
runSelectedGesture(@"playerGestureTopSelection", adjustedTranslationX, initialBrightness, initialVolume, currentTime);
} else if (gestureSection == GestureSectionMiddle) {
runSelectedGesture(@"playerGestureMiddleSelection", adjustedTranslationX, initialBrightness, initialVolume, currentTime);
} else if (gestureSection == GestureSectionBottom) {
runSelectedGesture(@"playerGestureBottomSelection", adjustedTranslationX, initialBrightness, initialVolume, currentTime);
} else {
// If the section is invalid, cancel the gesture
panGestureRecognizer.state = UIGestureRecognizerStateCancelled;
}
}
}
if (panGestureRecognizer.state == UIGestureRecognizerStateEnded) {
if (isValidHorizontalPan) {
// Provide haptic feedback upon successful gesture recognition
[feedbackGenerator prepare];
[feedbackGenerator impactOccurred];
}
}
}
// allow the pan gesture to be recognized simultaneously with other gestures
%new
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
%end
%end
/*
// BigYTMiniPlayer: https://github.com/Galactic-Dev/BigYTMiniPlayer
%group Main
@ -844,6 +1075,9 @@ BOOL isTabSelected = NO;
if (IsEnabled(@"disableEngagementOverlay_enabled")) {
%init(gDisableEngagementOverlay);
}
if (IsEnabled(@"playerGestures_enabled")) {
%init(playerGestures);
}
// Change the default value of some options
NSArray *allKeys = [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys];
@ -859,4 +1093,21 @@ BOOL isTabSelected = NO;
if (![allKeys containsObject:@"fixCasting_enabled"]) {
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"fixCasting_enabled"];
}
// Default gestures as volume, brightness, seek
if (![allKeys containsObject:@"playerGestureTopSelection"]) {
[[NSUserDefaults standardUserDefaults] setInteger:GestureModeVolume forKey:@"playerGestureTopSelection"];
}
if (![allKeys containsObject:@"playerGestureMiddleSelection"]) {
[[NSUserDefaults standardUserDefaults] setInteger:GestureModeBrightness forKey:@"playerGestureMiddleSelection"];
}
if (![allKeys containsObject:@"playerGestureBottomSelection"]) {
[[NSUserDefaults standardUserDefaults] setInteger:GestureModeSeek forKey:@"playerGestureBottomSelection"];
}
// Default configuration options for gestures
if (![allKeys containsObject:@"playerGesturesDeadzone"]) {
[[NSUserDefaults standardUserDefaults] setFloat:20.0 forKey:@"playerGesturesDeadzone"];
}
if (![allKeys containsObject:@"playerGesturesSensitivity"]) {
[[NSUserDefaults standardUserDefaults] setFloat:1.0 forKey:@"playerGesturesSensitivity"];
}
}

View file

@ -13,6 +13,25 @@
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "خيارات تراكب ضوابط الفيديو";
@ -70,6 +89,9 @@
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";

View file

@ -0,0 +1,185 @@
// Settings
"VERSION" = "Версия на YTLitePlus: %@";
"VERSION_CHECK" = "Докоснете, за да проверите за актуализация!";
"COPY_SETTINGS" = "Копиране на настройки";
"COPY_SETTINGS_DESC" = "Копиране на всички текущи настройки в клипборда";
"PASTE_SETTINGS" = "Поставяне на настройки";
"PASTE_SETTINGS_DESC" = "Поставяне на настройки от клипборда и прилагане";
"EXPORT_SETTINGS" = "Експортиране на настройки";
"EXPORT_SETTINGS_DESC" = "Експортиране на всички текущи настройки в .txt файл";
"IMPORT_SETTINGS" = "Импортиране на настройки";
"IMPORT_SETTINGS_DESC" = "Натиснете, за да импортирате настройки (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Заменете бутоните 'Копиране на настройки' и 'Поставяне на настройки'";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Заменете бутоните с 'Експортиране на настройки' и 'Импортиране на настройки'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Опции за контрол на видеото";
"ENABLE_SHARE_BUTTON" = "Активирайте бутона за споделяне";
"ENABLE_SHARE_BUTTON_DESC" = "Активирайте бутона за споделяне в контролите на видеото.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Активирайте бутона 'Запази в плейлист'";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Активирайте бутона 'Запази в плейлист' в контролите на видеото.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Скрийте бутоните с сенчест слой";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Скрийте сенчестия слой на бутоните за възпроизвеждане/пауза, предишен, следващ, напред и въртене назад.";
"HIDE_RIGHT_PANEL" = "Скрийте дясната панел в режим на цял екран";
"HIDE_RIGHT_PANEL_DESC" = "Необходим е рестарт на приложението.";
"HIDE_HEATWAVES" = "Скрийте топлинните вълни";
"HIDE_HEATWAVES_DESC" = "Скрийте топлинните вълни в видеоплеъра. Необходим е рестарт на приложението.";
"DISABLE_AMBIENT_PORTRAIT" = "Деактивирайте Ambient Mode (Портрет)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Деактивирайте осветлението около заглавието на видеото";
"DISABLE_AMBIENT_FULLSCREEN" = "Деактивирайте Ambient Mode (Цял екран)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Деактивирайте осветлението около видеоплеъра";
"FULLSCREEN_TO_THE_RIGHT" = "Цял екран вдясно";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Винаги влизайте в режим на цял екран с бутона за начало от дясната страна.";
"SEEK_ANYWHERE" = "Търсене навсякъде жест";
"SEEK_ANYWHERE_DESC" = "Задръжте и плъзнете върху видеоплеъра, за да търсите. Трябва да деактивирате YTLite - Задръжте, за да увеличите скоростта";
"ENABLE_TAP_TO_SEEK" = "Активирайте докосване за търсене";
"ENABLE_TAP_TO_SEEK_DESC" = "Скочете навсякъде в видео, като докоснете един път лентата за търсене";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Деактивирайте жеста за плъзгане до цял екран";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Деактивирайте жеста за плъзгане, за да влезете в вертикален режим на цял екран. Приложимо само за видеа в ландшафтен режим.";
"ALWAYS_USE_REMAINING_TIME" = "Винаги използвайте оставащото време";
"ALWAYS_USE_REMAINING_TIME_DESC" = "Променете настройката по подразбиране да показва оставащото време в лентата на плейъра.";
"DISABLE_TOGGLE_TIME_REMAINING" = "Деактивирайте превключването на оставащото време";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Деактивирайте променянето на изминалото време на оставащото време. Използвайте с друга настройка, за да показвате винаги оставащото време.";
"DISABLE_ENGAGEMENT_OVERLAY" = "Деактивирайте ангажиращия слой в режим на цял екран";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Деактивирайте жеста за плъзгане нагоре и списъка с предложени видеа в режим на цял екран";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Скрийте прегледите на коментари под плейъра";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Скрийте спойлера на коментарите в бутона за коментари";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Скрийте мини прегледа за автоматично възпроизвеждане";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Скрийте малкия прозорец с предложени видеа близо до заглавието в режим на цял екран";
"HIDE_HUD_MESSAGES" = "Скрийте съобщенията на HUD";
"HIDE_HUD_MESSAGES_DESC" = "Скрийте съобщенията, които се показват за определени действия (напр. CC включен/изключен)";
"HIDE_COLLAPSE_BUTTON" = "Скрийте бутона за свиване";
"HIDE_COLLAPSE_BUTTON_DESC" = "Скрийте бутона за свиване на стрелка, който беше показан в горния ляв ъгъл на видеоплеъра.";
"HIDE_SPEED_TOAST" = "Скрийте съобщението за скорост";
"HIDE_SPEED_TOAST_DESC" = "Скрийте изскачащото съобщение за 2X скорост при задържане на плейъра";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Опции за настройки на приложението";
"HIDE_ACCOUNT_SECTION" = "Скрийте секцията \"Акаунт\"";
"HIDE_AUTOPLAY_SECTION" = "Скрийте секцията \"Автоматично възпроизвеждане\"";
"HIDE_TRYNEWFEATURES_SECTION" = "Скрийте секцията \"Опитайте нови функции\"";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Скрийте секцията \"Предпочитания за качество на видеото\"";
"HIDE_NOTIFICATIONS_SECTION" = "Скрийте секцията \"Уведомления\"";
"HIDE_MANAGEALLHISTORY_SECTION" = "Скрийте секцията \"Управление на цялата история\"";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Скрийте секцията \"Вашите данни в YouTube\"";
"HIDE_PRIVACY_SECTION" = "Скрийте секцията \"Поверителност\"";
"HIDE_LIVECHAT_SECTION" = "Скрийте секцията \"Жив чат\"";
// Theme
"THEME_OPTIONS" = "Опции за тема";
"OLED_DARK_THEME" = "OLED тъмен режим";
"OLED_DARK_THEME_2" = "OLED тъмен режим";
"OLED_DARK_THEME_DESC" = "Истински тъмен режим. Може да не работи правилно в някои случаи. Необходим е рестарт на приложението след включване/изключване на тази опция.";
"OLD_DARK_THEME" = "Стар тъмен режим";
"OLD_DARK_THEME_DESC" = "Старият тъмен режим на YouTube (сив режим). Необходим е рестарт на приложението.";
"DEFAULT_THEME" = "По подразбиране";
"DEFAULT_THEME_DESC" = "Тъмен(и) режим(и) по подразбиране на YouTube. Необходим е рестарт на приложението.";
"OLED_KEYBOARD" = "OLED клавиатура";
"OLED_KEYBOARD_DESC" = "Може да не работи правилно в някои случаи. Необходим е рестарт на приложението.";
"LOW_CONTRAST_MODE" = "Режим с нисък контраст";
"LOW_CONTRAST_MODE_DESC" = "Тази опция ще намали контраста на текстовете и бутоните, както беше в стария интерфейс на YouTube. Необходим е рестарт на приложението.";
"LCM_SELECTOR" = "Избор на режим с нисък контраст";
"DEFAULT_LOWCONTRASTMODE" = "(По подразбиране) Режим с нисък контраст";
"CUSTOM_LOWCONTRASTMODE" = "(Персонализиран цвят) Режим с нисък контраст";
// Miscellaneous
"MISCELLANEOUS" = "Разни";
"PLAYBACK_IN_FEEDS" = "Възпроизвеждане в новините";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Винаги включено";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Само Wi-Fi";
"PLAYBACK_IN_FEEDS_OFF" = "Изключено";
"NEW_SETTINGS_UI" = "Нов потребителски интерфейс на настройките";
"NEW_SETTINGS_UI_DESC" = "Използвайте новия групиран потребителски интерфейс за настройки. Може да скрие някои настройки";
"ENABLE_YT_STARTUP_ANIMATION" = "Активирайте анимацията при стартиране на YouTube";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
"HIDE_MODERN_INTERFACE" = "Скрийте съвременния интерфейс (YTNoModernUI)";
"HIDE_MODERN_INTERFACE_DESC" = "Включете това, за да скриете съвременните елементи, добавени от YouTube. Премахва Ambient Mode, закръглен дизайн и други. Необходим е рестарт на приложението.";
"IPAD_LAYOUT" = "Оформление за iPad";
"IPAD_LAYOUT_DESC" = "Използвайте това, само ако искате да имате оформлението за iPad на текущия си iPhone/iPod. Необходим е рестарт на приложението.";
"IPHONE_LAYOUT" = "Оформление за iPhone";
"IPHONE_LAYOUT_DESC" = "Използвайте това, само ако искате да имате оформлението за iPhone на текущия си iPad. Необходим е рестарт на приложението.";
"CAST_CONFIRM" = "Потвърдете предупреждението преди стрийминг (YTCastConfirm)";
"CAST_CONFIRM_DESC" = "Показвайте потвърдително предупреждение преди стрийминг, за да предотвратите случайно преекспониране на TV.";
"CASTING" = "Стрийминг";
"MSG_ARE_YOU_SURE" = "Сигурни ли сте, че искате да започнете стрийминг?";
"MSG_YES" = "Да";
"MSG_CANCEL" = "Отказ";
"NEW_MINIPLAYER_STYLE" = "Нов стил на мини плейъра (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "Необходим е рестарт на приложението.";
"HIDE_CAST_BUTTON" = "Скрийте бутона за стрийминг";
"HIDE_CAST_BUTTON_DESC" = "Необходим е рестарт на приложението.";
"HIDE_SPONSORBLOCK_BUTTON" = "Скрийте бутона за iSponsorBlock в навигационната лента";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"HIDE_HOME_TAB" = "Скрийте таба \"Начало\"";
"HIDE_HOME_TAB_DESC" = "Бъдете внимателни при скриване на всички табове";
"FIX_CASTING" = "Поправете стрийминг";
"FIX_CASTING_DESC" = "Променя някои AB флагове, за да поправи стрийминг";
"ENABLE_FLEX" = "Активирайте FLEX";
"ENABLE_FLEX_DESC" = "Активирайте FLEX за отстраняване на проблеми (не се препоръчва). Оставете това изключено, освен ако не знаете какво правите.";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "Активирайте Промяна на версията на приложението (Lite)";
"APP_VERSION_SPOOFER_LITE_DESC" = "Активирайте това, за да използвате Промяната на версията (Lite) и изберете предпочитаната версия по-долу. Необходим е рестарт на приложението.";
"VERSION_SPOOFER_TITLE" = "Избор на Промяна на версията";
// Other Localization
"APP_RESTART_DESC" = "Необходим е рестарт на приложението.";
"CHANGE_APP_ICON" = "Промяна на иконата на приложението";

View file

@ -13,6 +13,25 @@
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Overlay-Optionen für Videosteuerungen";
@ -70,6 +89,9 @@
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Overlay-Optionen für App-Einstellungen";

View file

@ -13,6 +13,25 @@
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Controls Overlay Options";
@ -70,6 +89,9 @@
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";

View file

@ -13,6 +13,25 @@
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Opciones de superposición de controles de vídeo";
@ -70,6 +89,9 @@
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Opciones de superposición de los ajustes de la aplicación";

View file

@ -13,6 +13,25 @@
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Options de l'overlay des contrôles vidéo";
@ -70,6 +89,9 @@
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Paramètres des options d'overlay de l'application";

View file

@ -13,6 +13,25 @@
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "動画コントロールオーバーレイの設定";
@ -70,6 +89,9 @@
"HIDE_COLLAPSE_BUTTON" = "折りたたみボタンを隠す";
"HIDE_COLLAPSE_BUTTON_DESC" = "プレーヤー左上の折りたたみボタンを非表示にします。";
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "アプリの設定オーバーレイの設定";

View file

@ -2,16 +2,35 @@
"VERSION" = "Versão do YTLitePlus: %@";
"VERSION_CHECK" = "Toque para verificar se há atualização!";
"COPY_SETTINGS" = "Copy Settings";
"COPY_SETTINGS_DESC" = "Copy all current settings to the clipboard";
"PASTE_SETTINGS" = "Paste Settings";
"PASTE_SETTINGS_DESC" = "Paste settings from clipboard and apply";
"EXPORT_SETTINGS" = "Export Settings";
"EXPORT_SETTINGS_DESC" = "Exports all current settings into a .txt file";
"IMPORT_SETTINGS" = "Import Settings";
"IMPORT_SETTINGS_DESC" = "Press to import settings (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
"COPY_SETTINGS" = "Copiar Configurações";
"COPY_SETTINGS_DESC" = "Copia todas as configurações atuais para a área de transferência";
"PASTE_SETTINGS" = "Colar Configurações";
"PASTE_SETTINGS_DESC" = "Cola as configurações da área de transferência e aplica";
"EXPORT_SETTINGS" = "Exportar Configurações";
"EXPORT_SETTINGS_DESC" = "Exporta todas as configurações atuais para um arquivo .txt";
"IMPORT_SETTINGS" = "Importar Configurações";
"IMPORT_SETTINGS_DESC" = "Pressione para importar as configurações (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Substituir os Botões 'Copiar Configurações' e 'Colar Configurações'";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Substitui os Botões 'Exportar Configurações' e 'Importar Configurações'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Opções de Sobreposição de Controles de Vídeo";
@ -37,8 +56,8 @@
"DISABLE_AMBIENT_FULLSCREEN" = "Desativar Iluminação cinematográfica (Tela cheia)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Desativa a iluminação ao redor do player de vídeo";
"FULLSCREEN_TO_THE_RIGHT" = "Fullscreen to the Right";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Always enter fullscreen with home button on the right side.";
"FULLSCREEN_TO_THE_RIGHT" = "Tela cheia para a direita";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Sempre entre em tela cheia com o botão home no lado direito.";
"SEEK_ANYWHERE" = "Gesto de Busca em qualquer lugar";
"SEEK_ANYWHERE_DESC" = "Segure e arraste o player de vídeo para buscar. Você deve desativar o YTLite - Segurar para velocidade (Hold for speed)";
@ -58,17 +77,21 @@
"DISABLE_ENGAGEMENT_OVERLAY" = "Desativar sobreposição de engajamento em tela cheia";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Desativa o gesto de deslizar para cima e a lista de vídeos sugeridos em tela cheia";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Hide Comment previews under player";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Hide comment spoiler in comments button";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Ocultar Visualizações de comentários sob o player";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Oculta a Prévia de comentário no botão de comentários";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Hide autoplay mini preview";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Hide the small suggested video box near the title in fullscreen";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Ocultar mini visualização de reprodução automática";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Oculta a pequena caixa de vídeo sugerida perto do título em tela cheia";
"HIDE_HUD_MESSAGES" = "Ocultar Mensagens do HUD";
"HIDE_HUD_MESSAGES_DESC" = "Exemplo: Legendas/CC ativadas/desativadas, A repetição do vídeo está ativada,...";
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
"HIDE_COLLAPSE_BUTTON" = "Ocultar Botão de Recolhimento";
"HIDE_COLLAPSE_BUTTON_DESC" = "Oculta o botão de seta para recolher que era exibido no canto superior esquerdo do player de vídeo.";
"HIDE_SPEED_TOAST" = "Ocultar Toast de Velocidade";
"HIDE_SPEED_TOAST_DESC" = "Ocultar o popup de Velocidade 2X ao segurar o player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Configurações do Aplicativo";

View file

@ -13,6 +13,25 @@
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Opțiuni Overlay Controale Video";
@ -70,6 +89,9 @@
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Opțiuni Overlay Setări Aplicație";

View file

@ -13,6 +13,25 @@
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Controls Overlay Options";
@ -70,6 +89,9 @@
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";

View file

@ -28,6 +28,25 @@ https://github.com/PoomSmart/Return-YouTube-Dislikes/tree/main/layout/Library/Ap
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Controls Overlay Options";
@ -85,6 +104,9 @@ https://github.com/PoomSmart/Return-YouTube-Dislikes/tree/main/layout/Library/Ap
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";

View file

@ -1,6 +1,36 @@
// Settings
"VERSION" = "YTLitePlus'ın sürümü: %@";
"VERSION_CHECK" = "Güncelleme için dokunun!";
"VERSION_CHECK" = "Güncelleme kontrolü için dokun!";
"COPY_SETTINGS" = "Ayarları Kopyala";
"COPY_SETTINGS_DESC" = "Tüm mevcut ayarları panoya kopyala";
"PASTE_SETTINGS" = "Ayarları Yapıştır";
"PASTE_SETTINGS_DESC" = "Panodaki ayarları yapıştır ve uygula";
"EXPORT_SETTINGS" = "Ayarları Dışa Aktar";
"EXPORT_SETTINGS_DESC" = "Tüm mevcut ayarları bir .txt dosyasına dışa aktarır";
"IMPORT_SETTINGS" = "Ayarları İçe Aktar";
"IMPORT_SETTINGS_DESC" = "Ayarları içe aktarmak için basın (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "'Ayarları Kopyala' ve 'Ayarları Yapıştır' Düğmelerini Değiştir";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Düğmeleri 'Ayarları Dışa Aktar' ve 'Ayarları İçe Aktar' ile değiştirir";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
"COPY_SETTINGS" = "Ayarları Kopyala";
"COPY_SETTINGS_DESC" = "Tüm mevcut ayarları panoya kopyala";
@ -61,8 +91,8 @@
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Oynatıcının Altındaki Yorum Önizlemelerini Gizle";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Video oynatıcının altındaki yorum önizlemelerini gizler.";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Hide autoplay mini preview";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Hide the small suggested video box near the title in fullscreen";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Otomatik Oynatma Mini Önizlemesini Gizle";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Tam ekranda başlık yakınındaki küçük önerilen video kutusunu gizle";
"HIDE_HUD_MESSAGES" = "HUD mesajlarını gizle";
"HIDE_HUD_MESSAGES_DESC" = "Belirli işlemler için görüntülenen bildirim çubuklarını gizler (ör. CC açıldı/kapandı)";
@ -70,6 +100,9 @@
"HIDE_COLLAPSE_BUTTON" = "Daraltma Düğmesini Gizle";
"HIDE_COLLAPSE_BUTTON_DESC" = "Video oynatıcıda sol üstte görünen ok ile daraltma düğmesini gizler.";
"HIDE_SPEED_TOAST" = "Hız Bildirimini Gizle";
"HIDE_SPEED_TOAST_DESC" = "Oynatıcıya basılı tutarken 2X Hız bildirimini gizle";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Uyg. Ayarları Kaplama Seç.";
@ -84,7 +117,7 @@
"HIDE_LIVECHAT_SECTION" = "\"Canlı Sohbet\" Bölümünü Gizle";
// Theme
"THEME_OPTIONS" = "Tema Seç.";
"THEME_OPTIONS" = "Tema Seç";
"OLED_DARK_THEME" = "OLED koyu tema";
"OLED_DARK_THEME_2" = "OLED koyu tema";
@ -106,9 +139,9 @@
"CUSTOM_LOWCONTRASTMODE" = "(Özel Renk) DüşükKontrastModu";
// Miscellaneous
"MISCELLANEOUS" = "Çeşitli";
"MISCELLANEOUS" = "Diğer";
"PLAYBACK_IN_FEEDS" = "Akışlarda Oynatma";
"PLAYBACK_IN_FEEDS" = "Akışlarda Oto Oynatma";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Her zaman açık";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Yalnızca Wi-Fi";
"PLAYBACK_IN_FEEDS_OFF" = "Kapalı";

View file

@ -13,6 +13,25 @@
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
// Video player options
"VIDEO_PLAYER_OPTIONS" = "Tùy chọn trình phát video";
@ -79,6 +98,9 @@
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
// Shorts controls overlay options
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "Tùy chọn lớp phủ điều khiển quần short";

View file

@ -14,6 +14,25 @@
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "影片區覆蓋按鈕設定";
@ -71,6 +90,9 @@
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "應用程式設定隱藏項目";