Compare commits

...

55 Commits

Author SHA1 Message Date
semantic-release-bot
a7eed30f46 chore: Release v5.13.1-dev.1 [skip ci]
## [5.13.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.13.0...v5.13.1-dev.1) (2025-03-06)

### Bug Fixes

* **YouTube - Change form factor:** Restore Automotive form factor watch history menu, channel pages, and community posts ([#4541](https://github.com/ReVanced/revanced-patches/issues/4541)) ([e2de2d8](e2de2d8d44))
2025-03-06 06:28:57 +00:00
LisoUseInAIKyrios
e2de2d8d44 fix(YouTube - Change form factor): Restore Automotive form factor watch history menu, channel pages, and community posts (#4541) 2025-03-06 08:26:09 +02:00
github-actions[bot]
7ebbf356c0 chore: Sync translations (#4550) 2025-03-06 08:25:49 +02:00
ILoveOpenSourceApplications
2ced5c6e2a refactor(YouTube): Use more consistent strings (#4526) 2025-03-05 08:55:44 +02:00
semantic-release-bot
4a090ba659 chore: Release v5.13.0 [skip ci]
# [5.13.0](https://github.com/ReVanced/revanced-patches/compare/v5.12.0...v5.13.0) (2025-03-03)

### Bug Fixes

* **TikTok:** Resolve startup app crash ([3c52ab8](3c52ab8017))
* **TikTok:** Resolve startup app crash ([c817977](c8179776ed))
* **TikTok:** Resolve startup app crash ([d5aab3d](d5aab3d464))
* **TikTok:** Resolve startup app crash ([348f7e1](348f7e12cb))
* **YouTube - Copy video URL:** Use correct button ordering ([d77d5bf](d77d5bfbdd))
* **YouTube - Hide filter bar:** Fix `Hide in feed` not working in subscriptions feed ([#4512](https://github.com/ReVanced/revanced-patches/issues/4512)) ([1b60a72](1b60a72ede))
* **YouTube - Hide layout components:** Do not hide 'Show anyway' button in search results ([94fb367](94fb367618))
* **YouTube - Hide player components:** Show correct end video thumbnail if `Hide end screen suggested video` is enabled ([#4502](https://github.com/ReVanced/revanced-patches/issues/4502)) ([7cc939a](7cc939ab03))
* **YouTube - Hide video action buttons:** Move 'Disable Like and Subscribe glow' to action buttons settings menu ([7991c80](7991c80129))
* **YouTube - Return YouTube Dislike:** Use correct number formatting if using a different ReVanced language ([4ae1155](4ae1155e51))
* **YouTube - Spoof app version:** Force old settings menus if spoofing to older app targets ([#4490](https://github.com/ReVanced/revanced-patches/issues/4490)) ([0c0bbb8](0c0bbb8713))
* **YouTube - Spoof video streams:** Resolve playback issues with dynamic player config ([#4521](https://github.com/ReVanced/revanced-patches/issues/4521)) ([cbbf474](cbbf474c50))
* **YouTube - Swipe controls:** Adjust the overlay text size ([#4503](https://github.com/ReVanced/revanced-patches/issues/4503)) ([329f993](329f993024))
* **YouTube:** Do not hide player controls when using double tap to skip forward ([#4487](https://github.com/ReVanced/revanced-patches/issues/4487)) ([e664a24](e664a24f73))
* **YouTube:** Fix player button fade out animations ([#4469](https://github.com/ReVanced/revanced-patches/issues/4469)) ([a2c79f1](a2c79f1349))
* **YouTube:** Resolve button flickering when taping seekbar ([#4500](https://github.com/ReVanced/revanced-patches/issues/4500)) ([f5dd902](f5dd902915))

### Features

* **Infinity for Reddit:** Add support for Infinity for Reddit Plus ([#4511](https://github.com/ReVanced/revanced-patches/issues/4511)) ([fb8dbb4](fb8dbb4723))
* **NU.nl:** Add `Hide ads` and `Spoof Certificate` patch ([#4368](https://github.com/ReVanced/revanced-patches/issues/4368)) ([93ea250](93ea250bf3))
* **YouTube - Navigation buttons:** Add 'Hide notifications' setting ([#4485](https://github.com/ReVanced/revanced-patches/issues/4485)) ([d6eae01](d6eae01e12))
* **YouTube - Swipe controls:** Swipe controls UI improvements ([#4422](https://github.com/ReVanced/revanced-patches/issues/4422)) ([3548359](354835966d))
2025-03-03 07:01:16 +00:00
LisoUseInAIKyrios
cb609a6d9d chore: Merge branch dev to main (#4470) 2025-03-03 08:57:51 +02:00
github-actions[bot]
42e6de9e8f chore: Sync translations (#4525) 2025-03-03 08:55:55 +02:00
semantic-release-bot
c4a5b9a28c chore: Release v5.13.0-dev.19 [skip ci]
# [5.13.0-dev.19](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.18...v5.13.0-dev.19) (2025-03-02)

### Bug Fixes

* **YouTube - Spoof video streams:** Resolve playback issues with dynamic player config ([#4521](https://github.com/ReVanced/revanced-patches/issues/4521)) ([cbbf474](cbbf474c50))
2025-03-02 15:44:18 +00:00
github-actions[bot]
c86c85947f chore: Sync translations (#4523) 2025-03-02 17:40:33 +02:00
LisoUseInAIKyrios
cbbf474c50 fix(YouTube - Spoof video streams): Resolve playback issues with dynamic player config (#4521) 2025-03-02 17:38:43 +02:00
semantic-release-bot
f147b7b73d chore: Release v5.13.0-dev.18 [skip ci]
# [5.13.0-dev.18](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.17...v5.13.0-dev.18) (2025-02-28)

### Features

* **Infinity for Reddit:** Add support for Infinity for Reddit Plus ([#4511](https://github.com/ReVanced/revanced-patches/issues/4511)) ([fb8dbb4](fb8dbb4723))
2025-02-28 08:33:53 +00:00
tillcash
fb8dbb4723 feat(Infinity for Reddit): Add support for Infinity for Reddit Plus (#4511) 2025-02-28 10:31:02 +02:00
github-actions[bot]
1e0d27e689 chore: Sync translations (#4517) 2025-02-28 10:30:30 +02:00
semantic-release-bot
a2185bce09 chore: Release v5.13.0-dev.17 [skip ci]
# [5.13.0-dev.17](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.16...v5.13.0-dev.17) (2025-02-27)

### Bug Fixes

* **YouTube - Hide filter bar:** Fix `Hide in feed` not working in subscriptions feed ([#4512](https://github.com/ReVanced/revanced-patches/issues/4512)) ([1b60a72](1b60a72ede))
2025-02-27 13:23:12 +00:00
ILoveOpenSourceApplications
1b60a72ede fix(YouTube - Hide filter bar): Fix Hide in feed not working in subscriptions feed (#4512) 2025-02-27 15:20:30 +02:00
semantic-release-bot
12b4ee04ad chore: Release v5.13.0-dev.16 [skip ci]
# [5.13.0-dev.16](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.15...v5.13.0-dev.16) (2025-02-27)

### Features

* **NU.nl:** Add `Hide ads` and `Spoof Certificate` patch ([#4368](https://github.com/ReVanced/revanced-patches/issues/4368)) ([93ea250](93ea250bf3))
2025-02-27 06:12:28 +00:00
github-actions[bot]
f9a6cc96de chore: Sync translations (#4510) 2025-02-27 08:09:23 +02:00
Jasper Abbink
93ea250bf3 feat(NU.nl): Add Hide ads and Spoof Certificate patch (#4368)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2025-02-27 08:07:54 +02:00
semantic-release-bot
fdb946a2cc chore: Release v5.13.0-dev.15 [skip ci]
# [5.13.0-dev.15](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.14...v5.13.0-dev.15) (2025-02-25)

### Bug Fixes

* **YouTube - Hide player components:** Show correct end video thumbnail if `Hide end screen suggested video` is enabled ([#4502](https://github.com/ReVanced/revanced-patches/issues/4502)) ([7cc939a](7cc939ab03))
2025-02-25 15:42:36 +00:00
ILoveOpenSourceApplications
7cc939ab03 fix(YouTube - Hide player components): Show correct end video thumbnail if Hide end screen suggested video is enabled (#4502)
Co-authored-by: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com>
2025-02-25 17:38:16 +02:00
github-actions[bot]
228d72428d chore: Sync translations (#4505) 2025-02-25 16:55:10 +02:00
semantic-release-bot
4db7ab4207 chore: Release v5.13.0-dev.14 [skip ci]
# [5.13.0-dev.14](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.13...v5.13.0-dev.14) (2025-02-25)

### Bug Fixes

* **YouTube - Swipe controls:** Adjust the overlay text size ([#4503](https://github.com/ReVanced/revanced-patches/issues/4503)) ([329f993](329f993024))
2025-02-25 13:37:45 +00:00
MarcaD
329f993024 fix(YouTube - Swipe controls): Adjust the overlay text size (#4503) 2025-02-25 15:34:37 +02:00
github-actions[bot]
7cd1fb22d8 chore: Sync translations (#4504) 2025-02-25 15:34:19 +02:00
LisoUseInAIKyrios
ae111bc0b9 refactor(YouTube - Force original audio): Adjust settings text 2025-02-25 11:35:44 +02:00
semantic-release-bot
79f1dfd3e8 chore: Release v5.13.0-dev.13 [skip ci]
# [5.13.0-dev.13](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.12...v5.13.0-dev.13) (2025-02-24)

### Bug Fixes

* **YouTube:** Resolve button flickering when taping seekbar ([#4500](https://github.com/ReVanced/revanced-patches/issues/4500)) ([f5dd902](f5dd902915))
2025-02-24 18:37:58 +00:00
MarcaD
f5dd902915 fix(YouTube): Resolve button flickering when taping seekbar (#4500) 2025-02-24 20:34:28 +02:00
semantic-release-bot
10e2b08eb2 chore: Release v5.13.0-dev.12 [skip ci]
# [5.13.0-dev.12](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.11...v5.13.0-dev.12) (2025-02-24)

### Bug Fixes

* **YouTube - Return YouTube Dislike:** Use correct number formatting if using a different ReVanced language ([4ae1155](4ae1155e51))
2025-02-24 10:01:52 +00:00
LisoUseInAIKyrios
4ae1155e51 fix(YouTube - Return YouTube Dislike): Use correct number formatting if using a different ReVanced language 2025-02-24 11:58:57 +02:00
github-actions[bot]
69fbfaea19 chore: Sync translations (#4499)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-02-24 11:56:46 +02:00
semantic-release-bot
f44fede67c chore: Release v5.13.0-dev.11 [skip ci]
# [5.13.0-dev.11](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.10...v5.13.0-dev.11) (2025-02-23)

### Bug Fixes

* **TikTok:** Resolve startup app crash ([3c52ab8](3c52ab8017))
2025-02-23 07:31:27 +00:00
LisoUseInAIKyrios
3c52ab8017 fix(TikTok): Resolve startup app crash 2025-02-23 09:28:37 +02:00
github-actions[bot]
d1641a6e3d chore: Sync translations (#4495) 2025-02-23 09:26:22 +02:00
semantic-release-bot
09773e8934 chore: Release v5.13.0-dev.10 [skip ci]
# [5.13.0-dev.10](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.9...v5.13.0-dev.10) (2025-02-22)

### Bug Fixes

* **YouTube - Copy video URL:** Use correct button ordering ([d77d5bf](d77d5bfbdd))
2025-02-22 16:31:11 +00:00
LisoUseInAIKyrios
d77d5bfbdd fix(YouTube - Copy video URL): Use correct button ordering
Fixes refactoring oversight of button fade fix
2025-02-22 18:28:47 +02:00
semantic-release-bot
a84bded9e7 chore: Release v5.13.0-dev.9 [skip ci]
# [5.13.0-dev.9](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.8...v5.13.0-dev.9) (2025-02-22)

### Bug Fixes

* **YouTube:** Do not hide player controls when using double tap to skip forward ([#4487](https://github.com/ReVanced/revanced-patches/issues/4487)) ([e664a24](e664a24f73))
2025-02-22 15:48:25 +00:00
LisoUseInAIKyrios
e664a24f73 fix(YouTube): Do not hide player controls when using double tap to skip forward (#4487)
Co-authored-by: MarcaDian <tolan.sheremeev@gmail.com>
2025-02-22 17:44:53 +02:00
semantic-release-bot
5bf964fff6 chore: Release v5.13.0-dev.8 [skip ci]
# [5.13.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.7...v5.13.0-dev.8) (2025-02-22)

### Bug Fixes

* **YouTube - Spoof app version:** Force old settings menus if spoofing to older app targets ([#4490](https://github.com/ReVanced/revanced-patches/issues/4490)) ([0c0bbb8](0c0bbb8713))
2025-02-22 09:43:04 +00:00
LisoUseInAIKyrios
0c0bbb8713 fix(YouTube - Spoof app version): Force old settings menus if spoofing to older app targets (#4490) 2025-02-22 11:40:06 +02:00
github-actions[bot]
8afe48cd92 chore: Sync translations (#4492) 2025-02-22 11:39:54 +02:00
github-actions[bot]
dde8ea31cb chore: Sync translations (#4491) 2025-02-22 11:34:59 +02:00
semantic-release-bot
d3abbe3e93 chore: Release v5.13.0-dev.7 [skip ci]
# [5.13.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.6...v5.13.0-dev.7) (2025-02-22)

### Bug Fixes

* **TikTok:** Resolve startup app crash ([c817977](c8179776ed))
2025-02-22 06:25:32 +00:00
LisoUseInAIKyrios
c8179776ed fix(TikTok): Resolve startup app crash 2025-02-22 08:20:19 +02:00
semantic-release-bot
c6c6516b12 chore: Release v5.13.0-dev.6 [skip ci]
# [5.13.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.5...v5.13.0-dev.6) (2025-02-21)

### Features

* **YouTube - Navigation buttons:** Add 'Hide notifications' setting ([#4485](https://github.com/ReVanced/revanced-patches/issues/4485)) ([d6eae01](d6eae01e12))
2025-02-21 12:13:01 +00:00
LisoUseInAIKyrios
d6eae01e12 feat(YouTube - Navigation buttons): Add 'Hide notifications' setting (#4485) 2025-02-21 14:09:01 +02:00
semantic-release-bot
ba88603f4b chore: Release v5.13.0-dev.5 [skip ci]
# [5.13.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.4...v5.13.0-dev.5) (2025-02-19)

### Bug Fixes

* **TikTok:** Resolve startup app crash ([d5aab3d](d5aab3d464))
2025-02-19 14:39:51 +00:00
LisoUseInAIKyrios
d5aab3d464 fix(TikTok): Resolve startup app crash 2025-02-19 16:36:07 +02:00
semantic-release-bot
fca2f70c0e chore: Release v5.13.0-dev.4 [skip ci]
# [5.13.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.3...v5.13.0-dev.4) (2025-02-19)

### Bug Fixes

* **TikTok:** Resolve startup app crash ([348f7e1](348f7e12cb))
2025-02-19 13:57:05 +00:00
LisoUseInAIKyrios
348f7e12cb fix(TikTok): Resolve startup app crash 2025-02-19 15:53:12 +02:00
semantic-release-bot
b6b7208eeb chore: Release v5.13.0-dev.3 [skip ci]
# [5.13.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.2...v5.13.0-dev.3) (2025-02-19)

### Bug Fixes

* **YouTube:** Fix player button fade out animations ([#4469](https://github.com/ReVanced/revanced-patches/issues/4469)) ([a2c79f1](a2c79f1349))
2025-02-19 11:25:29 +00:00
MarcaD
a2c79f1349 fix(YouTube): Fix player button fade out animations (#4469) 2025-02-19 13:22:46 +02:00
github-actions[bot]
4f5bb3c915 chore: Sync translations (#4478) 2025-02-19 13:22:17 +02:00
semantic-release-bot
4b77d27c77 chore: Release v5.13.0-dev.2 [skip ci]
# [5.13.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.1...v5.13.0-dev.2) (2025-02-18)

### Bug Fixes

* **YouTube - Hide video action buttons:** Move 'Disable Like and Subscribe glow' to action buttons settings menu ([7991c80](7991c80129))
2025-02-18 07:29:55 +00:00
LisoUseInAIKyrios
7991c80129 fix(YouTube - Hide video action buttons): Move 'Disable Like and Subscribe glow' to action buttons settings menu 2025-02-18 09:26:30 +02:00
github-actions[bot]
6baf4ea2ac chore: Sync translations (#4473) 2025-02-18 09:24:59 +02:00
162 changed files with 5087 additions and 2337 deletions

View File

@@ -1,3 +1,166 @@
## [5.13.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.13.0...v5.13.1-dev.1) (2025-03-06)
### Bug Fixes
* **YouTube - Change form factor:** Restore Automotive form factor watch history menu, channel pages, and community posts ([#4541](https://github.com/ReVanced/revanced-patches/issues/4541)) ([aa5c001](https://github.com/ReVanced/revanced-patches/commit/aa5c001968446e5270c756256724e917009612cd))
# [5.13.0](https://github.com/ReVanced/revanced-patches/compare/v5.12.0...v5.13.0) (2025-03-03)
### Bug Fixes
* **TikTok:** Resolve startup app crash ([18c0fc2](https://github.com/ReVanced/revanced-patches/commit/18c0fc2a7f186f50a904fd25dbaa739abdd24993))
* **TikTok:** Resolve startup app crash ([6466398](https://github.com/ReVanced/revanced-patches/commit/64663983b84de1f28636205f61bf0a24c83968d1))
* **TikTok:** Resolve startup app crash ([c14bc24](https://github.com/ReVanced/revanced-patches/commit/c14bc244550de30eca975ca7c09e8eb0c47534b5))
* **TikTok:** Resolve startup app crash ([d700076](https://github.com/ReVanced/revanced-patches/commit/d7000768a5e5a688c9f4e48858ac34e352222c1e))
* **YouTube - Copy video URL:** Use correct button ordering ([5e622cc](https://github.com/ReVanced/revanced-patches/commit/5e622ccf66d34af31c6026fa7f4d332460c6ecb0))
* **YouTube - Hide filter bar:** Fix `Hide in feed` not working in subscriptions feed ([#4512](https://github.com/ReVanced/revanced-patches/issues/4512)) ([634d0ee](https://github.com/ReVanced/revanced-patches/commit/634d0ee12e31491c7ee1d4ceb002daf8366a3c15))
* **YouTube - Hide layout components:** Do not hide 'Show anyway' button in search results ([4ac8854](https://github.com/ReVanced/revanced-patches/commit/4ac8854b99808a8957f3b0b7438e1e0cdedffbaf))
* **YouTube - Hide player components:** Show correct end video thumbnail if `Hide end screen suggested video` is enabled ([#4502](https://github.com/ReVanced/revanced-patches/issues/4502)) ([6c4885a](https://github.com/ReVanced/revanced-patches/commit/6c4885a1d5dfff50100b01840b5552d92e83ee4a))
* **YouTube - Hide video action buttons:** Move 'Disable Like and Subscribe glow' to action buttons settings menu ([29b265d](https://github.com/ReVanced/revanced-patches/commit/29b265d8fdaa48502650be9623bfc518a57a0bb1))
* **YouTube - Return YouTube Dislike:** Use correct number formatting if using a different ReVanced language ([edf66f4](https://github.com/ReVanced/revanced-patches/commit/edf66f4e16d46156cb8b8e31d18cb8dbcb87737e))
* **YouTube - Spoof app version:** Force old settings menus if spoofing to older app targets ([#4490](https://github.com/ReVanced/revanced-patches/issues/4490)) ([45e7c46](https://github.com/ReVanced/revanced-patches/commit/45e7c46dd9c70c926b8b1a97ada668f90f5f6f8c))
* **YouTube - Spoof video streams:** Resolve playback issues with dynamic player config ([#4521](https://github.com/ReVanced/revanced-patches/issues/4521)) ([647e764](https://github.com/ReVanced/revanced-patches/commit/647e7642efc0c00db17ccb6a620d1c96ccf4afed))
* **YouTube - Swipe controls:** Adjust the overlay text size ([#4503](https://github.com/ReVanced/revanced-patches/issues/4503)) ([6dc4bf7](https://github.com/ReVanced/revanced-patches/commit/6dc4bf75e09ed6f05534919d7b769b720043abce))
* **YouTube:** Do not hide player controls when using double tap to skip forward ([#4487](https://github.com/ReVanced/revanced-patches/issues/4487)) ([63fe870](https://github.com/ReVanced/revanced-patches/commit/63fe870d48ca2217327b952bde241b7f16ced850))
* **YouTube:** Fix player button fade out animations ([#4469](https://github.com/ReVanced/revanced-patches/issues/4469)) ([bf8e775](https://github.com/ReVanced/revanced-patches/commit/bf8e7759f9bdbdfef419a879fb3dd7cf0dff0098))
* **YouTube:** Resolve button flickering when taping seekbar ([#4500](https://github.com/ReVanced/revanced-patches/issues/4500)) ([1f08047](https://github.com/ReVanced/revanced-patches/commit/1f08047b48cc9555a4887d16ec7219a55a77251f))
### Features
* **Infinity for Reddit:** Add support for Infinity for Reddit Plus ([#4511](https://github.com/ReVanced/revanced-patches/issues/4511)) ([d74732b](https://github.com/ReVanced/revanced-patches/commit/d74732b7596104321bde263201d95649e4bd0eee))
* **NU.nl:** Add `Hide ads` and `Spoof Certificate` patch ([#4368](https://github.com/ReVanced/revanced-patches/issues/4368)) ([f3268fb](https://github.com/ReVanced/revanced-patches/commit/f3268fb03ca25fb5465e36015b6c9dec2c84a655))
* **YouTube - Navigation buttons:** Add 'Hide notifications' setting ([#4485](https://github.com/ReVanced/revanced-patches/issues/4485)) ([506d241](https://github.com/ReVanced/revanced-patches/commit/506d2414bbc760e764e5a514b32926083d6ecb6b))
* **YouTube - Swipe controls:** Swipe controls UI improvements ([#4422](https://github.com/ReVanced/revanced-patches/issues/4422)) ([198e4d2](https://github.com/ReVanced/revanced-patches/commit/198e4d2a2315c24a09eb9ecfefbd131a75384d2c))
# [5.13.0-dev.19](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.18...v5.13.0-dev.19) (2025-03-02)
### Bug Fixes
* **YouTube - Spoof video streams:** Resolve playback issues with dynamic player config ([#4521](https://github.com/ReVanced/revanced-patches/issues/4521)) ([647e764](https://github.com/ReVanced/revanced-patches/commit/647e7642efc0c00db17ccb6a620d1c96ccf4afed))
# [5.13.0-dev.18](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.17...v5.13.0-dev.18) (2025-02-28)
### Features
* **Infinity for Reddit:** Add support for Infinity for Reddit Plus ([#4511](https://github.com/ReVanced/revanced-patches/issues/4511)) ([d74732b](https://github.com/ReVanced/revanced-patches/commit/d74732b7596104321bde263201d95649e4bd0eee))
# [5.13.0-dev.17](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.16...v5.13.0-dev.17) (2025-02-27)
### Bug Fixes
* **YouTube - Hide filter bar:** Fix `Hide in feed` not working in subscriptions feed ([#4512](https://github.com/ReVanced/revanced-patches/issues/4512)) ([634d0ee](https://github.com/ReVanced/revanced-patches/commit/634d0ee12e31491c7ee1d4ceb002daf8366a3c15))
# [5.13.0-dev.16](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.15...v5.13.0-dev.16) (2025-02-27)
### Features
* **NU.nl:** Add `Hide ads` and `Spoof Certificate` patch ([#4368](https://github.com/ReVanced/revanced-patches/issues/4368)) ([f3268fb](https://github.com/ReVanced/revanced-patches/commit/f3268fb03ca25fb5465e36015b6c9dec2c84a655))
# [5.13.0-dev.15](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.14...v5.13.0-dev.15) (2025-02-25)
### Bug Fixes
* **YouTube - Hide player components:** Show correct end video thumbnail if `Hide end screen suggested video` is enabled ([#4502](https://github.com/ReVanced/revanced-patches/issues/4502)) ([6c4885a](https://github.com/ReVanced/revanced-patches/commit/6c4885a1d5dfff50100b01840b5552d92e83ee4a))
# [5.13.0-dev.14](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.13...v5.13.0-dev.14) (2025-02-25)
### Bug Fixes
* **YouTube - Swipe controls:** Adjust the overlay text size ([#4503](https://github.com/ReVanced/revanced-patches/issues/4503)) ([6dc4bf7](https://github.com/ReVanced/revanced-patches/commit/6dc4bf75e09ed6f05534919d7b769b720043abce))
# [5.13.0-dev.13](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.12...v5.13.0-dev.13) (2025-02-24)
### Bug Fixes
* **YouTube:** Resolve button flickering when taping seekbar ([#4500](https://github.com/ReVanced/revanced-patches/issues/4500)) ([1f08047](https://github.com/ReVanced/revanced-patches/commit/1f08047b48cc9555a4887d16ec7219a55a77251f))
# [5.13.0-dev.12](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.11...v5.13.0-dev.12) (2025-02-24)
### Bug Fixes
* **YouTube - Return YouTube Dislike:** Use correct number formatting if using a different ReVanced language ([edf66f4](https://github.com/ReVanced/revanced-patches/commit/edf66f4e16d46156cb8b8e31d18cb8dbcb87737e))
# [5.13.0-dev.11](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.10...v5.13.0-dev.11) (2025-02-23)
### Bug Fixes
* **TikTok:** Resolve startup app crash ([18c0fc2](https://github.com/ReVanced/revanced-patches/commit/18c0fc2a7f186f50a904fd25dbaa739abdd24993))
# [5.13.0-dev.10](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.9...v5.13.0-dev.10) (2025-02-22)
### Bug Fixes
* **YouTube - Copy video URL:** Use correct button ordering ([5e622cc](https://github.com/ReVanced/revanced-patches/commit/5e622ccf66d34af31c6026fa7f4d332460c6ecb0))
# [5.13.0-dev.9](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.8...v5.13.0-dev.9) (2025-02-22)
### Bug Fixes
* **YouTube:** Do not hide player controls when using double tap to skip forward ([#4487](https://github.com/ReVanced/revanced-patches/issues/4487)) ([63fe870](https://github.com/ReVanced/revanced-patches/commit/63fe870d48ca2217327b952bde241b7f16ced850))
# [5.13.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.7...v5.13.0-dev.8) (2025-02-22)
### Bug Fixes
* **YouTube - Spoof app version:** Force old settings menus if spoofing to older app targets ([#4490](https://github.com/ReVanced/revanced-patches/issues/4490)) ([45e7c46](https://github.com/ReVanced/revanced-patches/commit/45e7c46dd9c70c926b8b1a97ada668f90f5f6f8c))
# [5.13.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.6...v5.13.0-dev.7) (2025-02-22)
### Bug Fixes
* **TikTok:** Resolve startup app crash ([6466398](https://github.com/ReVanced/revanced-patches/commit/64663983b84de1f28636205f61bf0a24c83968d1))
# [5.13.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.5...v5.13.0-dev.6) (2025-02-21)
### Features
* **YouTube - Navigation buttons:** Add 'Hide notifications' setting ([#4485](https://github.com/ReVanced/revanced-patches/issues/4485)) ([506d241](https://github.com/ReVanced/revanced-patches/commit/506d2414bbc760e764e5a514b32926083d6ecb6b))
# [5.13.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.4...v5.13.0-dev.5) (2025-02-19)
### Bug Fixes
* **TikTok:** Resolve startup app crash ([c14bc24](https://github.com/ReVanced/revanced-patches/commit/c14bc244550de30eca975ca7c09e8eb0c47534b5))
# [5.13.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.3...v5.13.0-dev.4) (2025-02-19)
### Bug Fixes
* **TikTok:** Resolve startup app crash ([d700076](https://github.com/ReVanced/revanced-patches/commit/d7000768a5e5a688c9f4e48858ac34e352222c1e))
# [5.13.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.2...v5.13.0-dev.3) (2025-02-19)
### Bug Fixes
* **YouTube:** Fix player button fade out animations ([#4469](https://github.com/ReVanced/revanced-patches/issues/4469)) ([bf8e775](https://github.com/ReVanced/revanced-patches/commit/bf8e7759f9bdbdfef419a879fb3dd7cf0dff0098))
# [5.13.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.13.0-dev.1...v5.13.0-dev.2) (2025-02-18)
### Bug Fixes
* **YouTube - Hide video action buttons:** Move 'Disable Like and Subscribe glow' to action buttons settings menu ([29b265d](https://github.com/ReVanced/revanced-patches/commit/29b265d8fdaa48502650be9623bfc518a57a0bb1))
# [5.13.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.12.0...v5.13.0-dev.1) (2025-02-18)

View File

@@ -0,0 +1,4 @@
dependencies {
compileOnly(project(":extensions:shared:library"))
compileOnly(project(":extensions:nunl:stub"))
}

View File

@@ -0,0 +1 @@
<manifest/>

View File

@@ -0,0 +1,114 @@
package app.revanced.extension.nunl.ads;
import nl.nu.performance.api.client.interfaces.Block;
import nl.nu.performance.api.client.unions.SmallArticleLinkFlavor;
import nl.nu.performance.api.client.objects.*;
import java.util.ArrayList;
import java.util.List;
import app.revanced.extension.shared.Logger;
@SuppressWarnings("unused")
public class HideAdsPatch {
private static final String[] blockedHeaderBlocks = {
"Aanbiedingen (Adverteerders)",
"Aangeboden door NUshop"
};
// "Rubrieken" menu links to ads.
private static final String[] blockedLinkBlocks = {
"Van onze adverteerders"
};
public static void filterAds(List<Block> blocks) {
try {
ArrayList<Block> cleanedList = new ArrayList<>();
boolean skipFullHeader = false;
boolean skipUntilDivider = false;
int index = 0;
while (index < blocks.size()) {
Block currentBlock = blocks.get(index);
// Because of pagination, we might not see the Divider in front of it.
// Just remove it as is and leave potential extra spacing visible on the screen.
if (currentBlock instanceof DpgBannerBlock) {
index++;
continue;
}
if (index + 1 < blocks.size()) {
// Filter Divider -> DpgMediaBanner -> Divider.
if (currentBlock instanceof DividerBlock
&& blocks.get(index + 1) instanceof DpgBannerBlock) {
index += 2;
continue;
}
// Filter Divider -> LinkBlock (... -> LinkBlock -> LinkBlock-> LinkBlock -> Divider).
if (currentBlock instanceof DividerBlock
&& blocks.get(index + 1) instanceof LinkBlock linkBlock) {
Link link = linkBlock.getLink();
if (link != null && link.getTitle() != null) {
for (String blockedLinkBlock : blockedLinkBlocks) {
if (blockedLinkBlock.equals(link.getTitle().getText())) {
skipUntilDivider = true;
break;
}
}
if (skipUntilDivider) {
index++;
continue;
}
}
}
}
// Skip LinkBlocks with a "flavor" claiming to be "isPartner" (sponsored inline ads).
if (currentBlock instanceof LinkBlock linkBlock
&& linkBlock.getLink() != null
&& linkBlock.getLink().getLinkFlavor() instanceof SmallArticleLinkFlavor smallArticleLinkFlavor
&& smallArticleLinkFlavor.isPartner() != null
&& smallArticleLinkFlavor.isPartner()) {
index++;
continue;
}
if (currentBlock instanceof DividerBlock) {
skipUntilDivider = false;
}
// Filter HeaderBlock with known ads until next HeaderBlock.
if (currentBlock instanceof HeaderBlock headerBlock) {
StyledText headerText = headerBlock.component20();
if (headerText != null) {
skipFullHeader = false;
for (String blockedHeaderBlock : blockedHeaderBlocks) {
if (blockedHeaderBlock.equals(headerText.getText())) {
skipFullHeader = true;
break;
}
}
if (skipFullHeader) {
index++;
continue;
}
}
}
if (!skipFullHeader && !skipUntilDivider) {
cleanedList.add(currentBlock);
}
index++;
}
// Replace list in-place to not deal with moving the result to the correct register in smali.
blocks.clear();
blocks.addAll(cleanedList);
} catch (Exception ex) {
Logger.printException(() -> "filterAds failure", ex);
}
}
}

View File

@@ -0,0 +1,17 @@
plugins {
id(libs.plugins.android.library.get().pluginId)
}
android {
namespace = "app.revanced.extension"
compileSdk = 34
defaultConfig {
minSdk = 26
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
}

View File

@@ -0,0 +1 @@
<manifest/>

View File

@@ -0,0 +1,5 @@
package nl.nu.performance.api.client.interfaces;
public class Block {
}

View File

@@ -0,0 +1,7 @@
package nl.nu.performance.api.client.objects;
import nl.nu.performance.api.client.interfaces.Block;
public class DividerBlock extends Block {
}

View File

@@ -0,0 +1,7 @@
package nl.nu.performance.api.client.objects;
import nl.nu.performance.api.client.interfaces.Block;
public class DpgBannerBlock extends Block {
}

View File

@@ -0,0 +1,10 @@
package nl.nu.performance.api.client.objects;
import nl.nu.performance.api.client.interfaces.Block;
public class HeaderBlock extends Block {
// returns title
public final StyledText component20() {
throw new UnsupportedOperationException("Stub");
}
}

View File

@@ -0,0 +1,13 @@
package nl.nu.performance.api.client.objects;
import nl.nu.performance.api.client.unions.LinkFlavor;
public class Link {
public final StyledText getTitle() {
throw new UnsupportedOperationException("Stub");
}
public final LinkFlavor getLinkFlavor() {
throw new UnsupportedOperationException("Stub");
}
}

View File

@@ -0,0 +1,10 @@
package nl.nu.performance.api.client.objects;
import android.os.Parcelable;
import nl.nu.performance.api.client.interfaces.Block;
public abstract class LinkBlock extends Block implements Parcelable {
public final Link getLink() {
throw new UnsupportedOperationException("Stub");
}
}

View File

@@ -0,0 +1,7 @@
package nl.nu.performance.api.client.objects;
public class StyledText {
public final String getText() {
throw new UnsupportedOperationException("Stub");
}
}

View File

@@ -0,0 +1,4 @@
package nl.nu.performance.api.client.unions;
public interface LinkFlavor {
}

View File

@@ -0,0 +1,7 @@
package nl.nu.performance.api.client.unions;
public class SmallArticleLinkFlavor implements LinkFlavor {
public final Boolean isPartner() {
throw new UnsupportedOperationException("Stub");
}
}

View File

@@ -356,33 +356,24 @@ public class Utils {
public static Context getContext() {
if (context == null) {
Logger.initializationException(Utils.class, "Context is null, returning null!", null);
Logger.initializationException(Utils.class, "Context is not set by extension hook, returning null", null);
}
return context;
}
public static void setContext(Context appContext) {
// Must initially set context as the language settings needs it.
// Must initially set context to check the app language.
context = appContext;
Logger.initializationInfo(Utils.class, "Set context: " + appContext);
AppLanguage language = BaseSettings.REVANCED_LANGUAGE.get();
if (language != AppLanguage.DEFAULT) {
// Create a new context with the desired language.
Logger.printDebug(() -> "Using app language: " + language);
Configuration config = appContext.getResources().getConfiguration();
config.setLocale(language.getLocale());
context = appContext.createConfigurationContext(config);
}
// In some apps like TikTok, the Setting classes can load in weird orders due to cyclic class dependencies.
// Calling the regular printDebug method here can cause a Settings context null pointer exception,
// even though the context is already set before the call.
//
// The initialization logger methods do not directly or indirectly
// reference the Context or any Settings and are unaffected by this problem.
//
// Info level also helps debug if a patch hook is called before
// the context is set since debug logging is off by default.
Logger.initializationInfo(Utils.class, "Set context: " + appContext);
}
public static void setClipboard(@NonNull String text) {

View File

@@ -111,7 +111,7 @@ public enum ClientType {
ANDROID_VR_NO_AUTH.clientVersion,
ANDROID_VR_NO_AUTH.requiresAuth,
true,
"Android VR"
"Android VR Auth"
);
private static boolean forceAVC() {

View File

@@ -107,6 +107,21 @@ public class SpoofVideoStreamsPatch {
return false;
}
/**
* Injection point.
* Turns off a feature flag that interferes with spoofing.
*/
public static boolean useMediaFetchHotConfigReplacement(boolean original) {
if (original) {
Logger.printDebug(() -> "useMediaFetchHotConfigReplacement is set on");
}
if (!SPOOF_STREAMING_DATA) {
return original;
}
return false;
}
/**
* Injection point.
*/

View File

@@ -1,37 +1,60 @@
package app.revanced.extension.tiktok.spoof.sim;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
import app.revanced.extension.tiktok.settings.Settings;
@SuppressWarnings("unused")
public class SpoofSimPatch {
private static final boolean ENABLED = Settings.SIM_SPOOF.get();
/**
* During app startup native code can be called with no obvious way to set the context.
* Cannot check if sim spoofing is enabled or the app will crash since no context is set.
*/
private static boolean isContextNotSet(String fieldSpoofed) {
if (Utils.getContext() != null) {
return false;
}
Logger.initializationException(SpoofSimPatch.class,
"Context is not yet set, cannot spoof: " + fieldSpoofed, null);
return true;
}
public static String getCountryIso(String value) {
if (ENABLED) {
if (isContextNotSet("countryIso")) return value;
if (Settings.SIM_SPOOF.get()) {
String iso = Settings.SIM_SPOOF_ISO.get();
Logger.printDebug(() -> "Spoofing sim ISO from: " + value + " to: " + iso);
Logger.printDebug(() -> "Spoofing countryIso from: " + value + " to: " + iso);
return iso;
}
return value;
}
public static String getOperator(String value) {
if (ENABLED) {
if (isContextNotSet("MCC-MNC")) return value;
if (Settings.SIM_SPOOF.get()) {
String mcc_mnc = Settings.SIMSPOOF_MCCMNC.get();
Logger.printDebug(() -> "Spoofing sim MCC-MNC from: " + value + " to: " + mcc_mnc);
return mcc_mnc;
}
return value;
}
public static String getOperatorName(String value) {
if (ENABLED) {
if (isContextNotSet("operatorName")) return value;
if (Settings.SIM_SPOOF.get()) {
String operator = Settings.SIMSPOOF_OP_NAME.get();
Logger.printDebug(() -> "Spoofing sim operator from: " + value + " to: " + operator);
Logger.printDebug(() -> "Spoofing sim operatorName from: " + value + " to: " + operator);
return operator;
}
return value;
}
}

View File

@@ -1,9 +1,17 @@
package app.revanced.extension.youtube.patches;
import static app.revanced.extension.youtube.shared.NavigationBar.NavigationButton;
import android.view.View;
import androidx.annotation.Nullable;
import app.revanced.extension.shared.Utils;
import java.util.Objects;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.youtube.settings.Settings;
import app.revanced.extension.youtube.shared.NavigationBar;
import app.revanced.extension.youtube.shared.PlayerType;
@SuppressWarnings("unused")
public class ChangeFormFactorPatch {
@@ -41,14 +49,57 @@ public class ChangeFormFactorPatch {
@Nullable
private static final Integer FORM_FACTOR_TYPE = Settings.CHANGE_FORM_FACTOR.get().formFactorType;
private static final boolean USING_AUTOMOTIVE_TYPE = Objects.requireNonNull(
FormFactor.AUTOMOTIVE.formFactorType).equals(FORM_FACTOR_TYPE);
/**
* Injection point.
*/
public static int getFormFactor(int original) {
return FORM_FACTOR_TYPE == null
? original
: FORM_FACTOR_TYPE;
if (FORM_FACTOR_TYPE == null) return original;
if (USING_AUTOMOTIVE_TYPE) {
// Do not change if the player is opening or is opened,
// otherwise the video description cannot be opened.
PlayerType current = PlayerType.getCurrent();
if (current.isMaximizedOrFullscreen() || current == PlayerType.WATCH_WHILE_SLIDING_MINIMIZED_MAXIMIZED) {
Logger.printDebug(() -> "Using original form factor for player");
return original;
}
if (!NavigationBar.isSearchBarActive()) {
// Automotive type shows error 400 when opening a channel page and using some explore tab.
// This is a bug in unpatched YouTube that occurs on actual Android Automotive devices.
// Work around the issue by using the original form factor if not in search and the
// navigation back button is present.
if (NavigationBar.isBackButtonVisible()) {
Logger.printDebug(() -> "Using original form factor, as back button is visible without search present");
return original;
}
// Do not change library tab otherwise watch history is hidden.
// Do this check last since the current navigation button is required.
if (NavigationButton.getSelectedNavigationButton() == NavigationButton.LIBRARY) {
return original;
}
}
}
return FORM_FACTOR_TYPE;
}
/**
* Injection point.
*/
public static void navigationTabCreated(NavigationButton button, View tabView) {
// On first startup of the app the navigation buttons are fetched and updated.
// If the user immediately opens the 'You' or opens a video, then the call to
// update the navigtation buttons will use the non automotive form factor
// and the explore tab is missing.
// Fixing this is not so simple because of the concurrent calls for the player and You tab.
// For now, always hide the explore tab.
if (USING_AUTOMOTIVE_TYPE && button == NavigationButton.EXPLORE) {
tabView.setVisibility(View.GONE);
}
}
}

View File

@@ -1,24 +0,0 @@
package app.revanced.extension.youtube.patches;
import android.annotation.SuppressLint;
import android.widget.ImageView;
import app.revanced.extension.youtube.settings.Settings;
/** @noinspection unused*/
public final class DisableSuggestedVideoEndScreenPatch {
@SuppressLint("StaticFieldLeak")
private static ImageView lastView;
public static void closeEndScreen(final ImageView imageView) {
if (!Settings.DISABLE_SUGGESTED_VIDEO_END_SCREEN.get()) return;
// Prevent adding the listener multiple times.
if (lastView == imageView) return;
lastView = imageView;
imageView.getViewTreeObserver().addOnGlobalLayoutListener(() -> {
if (imageView.isShown()) imageView.callOnClick();
});
}
}

View File

@@ -24,7 +24,7 @@ public final class EnableDebuggingPatch {
/**
* Injection point.
*/
public static boolean isBooleanFeatureFlagEnabled(boolean value, long flag) {
public static boolean isBooleanFeatureFlagEnabled(boolean value, Long flag) {
if (LOG_FEATURE_FLAGS && value) {
if (featureFlags.putIfAbsent(flag, true) == null) {
Logger.printDebug(() -> "boolean feature is enabled: " + flag);

View File

@@ -0,0 +1,13 @@
package app.revanced.extension.youtube.patches;
import app.revanced.extension.youtube.settings.Settings;
@SuppressWarnings("unused")
public final class HideEndScreenSuggestedVideoPatch {
/**
* Injection point.
*/
public static boolean hideEndScreenSuggestedVideo() {
return Settings.HIDE_END_SCREEN_SUGGESTED_VIDEO.get();
}
}

View File

@@ -21,6 +21,7 @@ public final class NavigationButtonsPatch {
{
put(NavigationButton.HOME, Settings.HIDE_HOME_BUTTON.get());
put(NavigationButton.CREATE, Settings.HIDE_CREATE_BUTTON.get());
put(NavigationButton.NOTIFICATIONS, Settings.HIDE_NOTIFICATIONS_BUTTON.get());
put(NavigationButton.SHORTS, Settings.HIDE_SHORTS_BUTTON.get());
put(NavigationButton.SUBSCRIPTIONS, Settings.HIDE_SUBSCRIPTIONS_BUTTON.get());
}

View File

@@ -6,8 +6,12 @@ import app.revanced.extension.youtube.settings.Settings;
@SuppressWarnings("unused")
final class ButtonsFilter extends Filter {
private static final String COMPACT_CHANNEL_BAR_PATH_PREFIX = "compact_channel_bar.eml";
private static final String VIDEO_ACTION_BAR_PATH_PREFIX = "video_action_bar.eml";
private static final String VIDEO_ACTION_BAR_PATH = "video_action_bar.eml";
private static final String ANIMATED_VECTOR_TYPE_PATH = "AnimatedVectorType";
private final StringFilterGroup likeSubscribeGlow;
private final StringFilterGroup actionBarGroup;
private final StringFilterGroup bufferFilterPathGroup;
private final ByteArrayFilterGroupList bufferButtonsGroupList = new ByteArrayFilterGroupList();
@@ -20,11 +24,19 @@ final class ButtonsFilter extends Filter {
addIdentifierCallbacks(actionBarGroup);
likeSubscribeGlow = new StringFilterGroup(
Settings.DISABLE_LIKE_SUBSCRIBE_GLOW,
"animated_button_border.eml"
);
bufferFilterPathGroup = new StringFilterGroup(
null,
"|ContainerType|button.eml|"
);
addPathCallbacks(
likeSubscribeGlow,
bufferFilterPathGroup,
new StringFilterGroup(
Settings.HIDE_LIKE_DISLIKE_BUTTON,
"|segmented_like_dislike_button"
@@ -40,8 +52,7 @@ final class ButtonsFilter extends Filter {
new StringFilterGroup(
Settings.HIDE_CLIP_BUTTON,
"|clip_button.eml|"
),
bufferFilterPathGroup
)
);
bufferButtonsGroupList.addAll(
@@ -83,6 +94,15 @@ final class ButtonsFilter extends Filter {
@Override
boolean isFiltered(@Nullable String identifier, String path, byte[] protobufBufferArray,
StringFilterGroup matchedGroup, FilterContentType contentType, int contentIndex) {
if (matchedGroup == likeSubscribeGlow) {
if ((path.startsWith(VIDEO_ACTION_BAR_PATH_PREFIX) || path.startsWith(COMPACT_CHANNEL_BAR_PATH_PREFIX))
&& path.contains(ANIMATED_VECTOR_TYPE_PATH)) {
return super.isFiltered(identifier, path, protobufBufferArray, matchedGroup, contentType, contentIndex);
}
return false;
}
// If the current matched group is the action bar group,
// in case every filter group is enabled, hide the action bar.
if (matchedGroup == actionBarGroup) {

View File

@@ -16,10 +16,6 @@ import app.revanced.extension.youtube.shared.PlayerType;
@SuppressWarnings("unused")
public final class LayoutComponentsFilter extends Filter {
private static final String COMPACT_CHANNEL_BAR_PATH_PREFIX = "compact_channel_bar.eml";
private static final String VIDEO_ACTION_BAR_PATH_PREFIX = "video_action_bar.eml";
private static final String ANIMATED_VECTOR_TYPE_PATH = "AnimatedVectorType";
private static final StringTrieSearch mixPlaylistsExceptions = new StringTrieSearch(
"V.ED", // Playlist browse id.
"java.lang.ref.WeakReference"
@@ -43,7 +39,6 @@ public final class LayoutComponentsFilter extends Filter {
private final StringFilterGroup compactChannelBarInner;
private final StringFilterGroup compactChannelBarInnerButton;
private final ByteArrayFilterGroup joinMembershipButton;
private final StringFilterGroup likeSubscribeGlow;
private final StringFilterGroup horizontalShelves;
public LayoutComponentsFilter() {
@@ -103,6 +98,11 @@ public final class LayoutComponentsFilter extends Filter {
"compact_banner"
);
final var subscriptionsChipBar = new StringFilterGroup(
Settings.HIDE_FILTER_BAR_FEED_IN_FEED,
"subscriptions_chip_bar"
);
inFeedSurvey = new StringFilterGroup(
Settings.HIDE_FEED_SURVEY,
"in_feed_survey",
@@ -219,10 +219,6 @@ public final class LayoutComponentsFilter extends Filter {
"sponsorships"
);
likeSubscribeGlow = new StringFilterGroup(
Settings.DISABLE_LIKE_SUBSCRIBE_GLOW,
"animated_button_border.eml"
);
final var channelWatermark = new StringFilterGroup(
Settings.HIDE_VIDEO_CHANNEL_WATERMARK,
@@ -256,7 +252,6 @@ public final class LayoutComponentsFilter extends Filter {
expandableMetadata,
inFeedSurvey,
notifyMe,
likeSubscribeGlow,
compactChannelBar,
communityPosts,
paidPromotion,
@@ -274,6 +269,7 @@ public final class LayoutComponentsFilter extends Filter {
singleItemInformationPanel,
emergencyBox,
subscribersCommunityGuidelines,
subscriptionsChipBar,
channelGuidelines,
audioTrackButton,
artistCard,
@@ -308,15 +304,6 @@ public final class LayoutComponentsFilter extends Filter {
return false;
}
if (matchedGroup == likeSubscribeGlow) {
if ((path.startsWith(VIDEO_ACTION_BAR_PATH_PREFIX) || path.startsWith(COMPACT_CHANNEL_BAR_PATH_PREFIX))
&& path.contains(ANIMATED_VECTOR_TYPE_PATH)) {
return super.isFiltered(identifier, path, protobufBufferArray, matchedGroup, contentType, contentIndex);
}
return false;
}
// The groups are excluded from the filter due to the exceptions list below.
// Filter them separately here.
if (matchedGroup == notifyMe || matchedGroup == inFeedSurvey || matchedGroup == expandableMetadata)

View File

@@ -352,13 +352,16 @@ public class ReturnYouTubeDislike {
}
private static String formatDislikeCount(long dislikeCount) {
synchronized (ReturnYouTubeDislike.class) { // number formatter is not thread safe, must synchronize
synchronized (ReturnYouTubeDislike.class) { // Number formatter is not thread safe.
if (dislikeCountFormatter == null) {
Locale locale = Objects.requireNonNull(Utils.getContext()).getResources().getConfiguration().locale;
// Must use default locale and not Utils context locale,
// otherwise if using a different settings language then the
// formatting will use that of the different language.
Locale locale = Locale.getDefault();
dislikeCountFormatter = CompactDecimalFormat.getInstance(locale, CompactDecimalFormat.CompactStyle.SHORT);
// YouTube disregards locale specific number characters
// and instead shows english number characters everywhere.
// and instead shows English number characters everywhere.
// To use the same behavior, override the digit characters to use English
// so languages such as Arabic will show "1.234" instead of the native "۱,۲۳٤"
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
@@ -375,15 +378,15 @@ public class ReturnYouTubeDislike {
private static String formatDislikePercentage(float dislikePercentage) {
synchronized (ReturnYouTubeDislike.class) { // Number formatter is not thread safe, must synchronize.
if (dislikePercentageFormatter == null) {
Locale locale = Objects.requireNonNull(Utils.getContext()).getResources().getConfiguration().locale;
Locale locale = Locale.getDefault();
dislikePercentageFormatter = NumberFormat.getPercentInstance(locale);
// Want to set the digit strings, and the simplest way is to cast to the implementation NumberFormat returns.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P
&& dislikePercentageFormatter instanceof DecimalFormat) {
&& dislikePercentageFormatter instanceof DecimalFormat decimalFormatter) {
DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance(locale);
symbols.setDigitStrings(DecimalFormatSymbols.getInstance(Locale.ENGLISH).getDigitStrings());
((DecimalFormat) dislikePercentageFormatter).setDecimalFormatSymbols(symbols);
decimalFormatter.setDecimalFormatSymbols(symbols);
}
}

View File

@@ -19,6 +19,7 @@ import app.revanced.extension.shared.settings.AppLanguage;
import app.revanced.extension.shared.settings.BaseSettings;
import app.revanced.extension.youtube.ThemeHelper;
import app.revanced.extension.youtube.patches.VersionCheckPatch;
import app.revanced.extension.youtube.patches.spoof.SpoofAppVersionPatch;
import app.revanced.extension.youtube.settings.preference.ReVancedPreferenceFragment;
import app.revanced.extension.youtube.settings.preference.ReturnYouTubeDislikePreferenceFragment;
import app.revanced.extension.youtube.settings.preference.SponsorBlockPreferenceFragment;
@@ -63,6 +64,10 @@ public class LicenseActivityHook {
if (Settings.RESTORE_OLD_SETTINGS_MENUS.get()) {
return false;
}
// Spoofing can cause half broken settings menus of old and new settings.
if (SpoofAppVersionPatch.isSpoofingToLessThan("19.35.36")) {
return false;
}
// On the first launch of a clean install, forcing the cairo menu can give a
// half broken appearance because all the preference icons may not be available yet.
@@ -121,8 +126,7 @@ public class LicenseActivityHook {
// This is required to fix submenu title alignment issue with Android ASOP 15+
ViewGroup toolBarParent = activity.findViewById(
getResourceIdentifier("revanced_toolbar_parent", "id"));
ViewGroup dummyToolbar = toolBarParent.findViewById(getResourceIdentifier(
"revanced_toolbar", "id"));
ViewGroup dummyToolbar = Utils.getChildViewByResourceName(toolBarParent,"revanced_toolbar");
toolbarLayoutParams = dummyToolbar.getLayoutParams();
toolBarParent.removeView(dummyToolbar);

View File

@@ -124,9 +124,7 @@ public class Settings extends BaseSettings {
public static final BooleanSetting COPY_VIDEO_URL = new BooleanSetting("revanced_copy_video_url", FALSE);
public static final BooleanSetting COPY_VIDEO_URL_TIMESTAMP = new BooleanSetting("revanced_copy_video_url_timestamp", TRUE);
public static final BooleanSetting DISABLE_FULLSCREEN_AMBIENT_MODE = new BooleanSetting("revanced_disable_fullscreen_ambient_mode", TRUE, true);
public static final BooleanSetting DISABLE_LIKE_SUBSCRIBE_GLOW = new BooleanSetting("revanced_disable_like_subscribe_glow", FALSE);
public static final BooleanSetting DISABLE_ROLLING_NUMBER_ANIMATIONS = new BooleanSetting("revanced_disable_rolling_number_animations", FALSE);
public static final BooleanSetting DISABLE_SUGGESTED_VIDEO_END_SCREEN = new BooleanSetting("revanced_disable_suggested_video_end_screen", FALSE, true);
public static final EnumSetting<FullscreenMode> EXIT_FULLSCREEN = new EnumSetting<>("revanced_exit_fullscreen", FullscreenMode.DISABLED);
public static final BooleanSetting HIDE_AUTOPLAY_BUTTON = new BooleanSetting("revanced_hide_autoplay_button", TRUE, true);
public static final BooleanSetting HIDE_CAPTIONS_BUTTON = new BooleanSetting("revanced_hide_captions_button", FALSE);
@@ -136,6 +134,7 @@ public class Settings extends BaseSettings {
public static final BooleanSetting HIDE_COMMUNITY_GUIDELINES = new BooleanSetting("revanced_hide_community_guidelines", TRUE);
public static final BooleanSetting HIDE_EMERGENCY_BOX = new BooleanSetting("revanced_hide_emergency_box", TRUE);
public static final BooleanSetting HIDE_ENDSCREEN_CARDS = new BooleanSetting("revanced_hide_endscreen_cards", FALSE);
public static final BooleanSetting HIDE_END_SCREEN_SUGGESTED_VIDEO = new BooleanSetting("revanced_end_screen_suggested_video", FALSE, true);
public static final BooleanSetting HIDE_HIDE_CHANNEL_GUIDELINES = new BooleanSetting("revanced_hide_channel_guidelines", TRUE);
public static final BooleanSetting HIDE_INFO_PANELS = new BooleanSetting("revanced_hide_info_panels", TRUE);
public static final BooleanSetting HIDE_INFO_CARDS = new BooleanSetting("revanced_hide_info_cards", FALSE);
@@ -172,10 +171,10 @@ public class Settings extends BaseSettings {
public static final BooleanSetting HIDE_COMMENTS_CHAT_SUMMARY = new BooleanSetting("revanced_hide_comments_chat_summary", FALSE);
public static final BooleanSetting HIDE_COMMENTS_BY_MEMBERS_HEADER = new BooleanSetting("revanced_hide_comments_by_members_header", FALSE);
public static final BooleanSetting HIDE_COMMENTS_CREATE_A_SHORT_BUTTON = new BooleanSetting("revanced_hide_comments_create_a_short_button", TRUE);
public static final BooleanSetting HIDE_COMMENTS_TIMESTAMP_AND_EMOJI_BUTTONS = new BooleanSetting("revanced_hide_comments_timestamp_and_emoji_buttons", TRUE);
public static final BooleanSetting HIDE_COMMENTS_PREVIEW_COMMENT = new BooleanSetting("revanced_hide_comments_preview_comment", FALSE);
public static final BooleanSetting HIDE_COMMENTS_SECTION = new BooleanSetting("revanced_hide_comments_section", FALSE);
public static final BooleanSetting HIDE_COMMENTS_THANKS_BUTTON = new BooleanSetting("revanced_hide_comments_thanks_button", TRUE);
public static final BooleanSetting HIDE_COMMENTS_TIMESTAMP_AND_EMOJI_BUTTONS = new BooleanSetting("revanced_hide_comments_timestamp_and_emoji_buttons", TRUE);
// Description
public static final BooleanSetting HIDE_ATTRIBUTES_SECTION = new BooleanSetting("revanced_hide_attributes_section", FALSE);
public static final BooleanSetting HIDE_CHAPTERS_SECTION = new BooleanSetting("revanced_hide_chapters_section", TRUE);
@@ -185,6 +184,7 @@ public class Settings extends BaseSettings {
public static final BooleanSetting HIDE_PODCAST_SECTION = new BooleanSetting("revanced_hide_podcast_section", TRUE);
public static final BooleanSetting HIDE_TRANSCRIPT_SECTION = new BooleanSetting("revanced_hide_transcript_section", TRUE);
// Action buttons
public static final BooleanSetting DISABLE_LIKE_SUBSCRIBE_GLOW = new BooleanSetting("revanced_disable_like_subscribe_glow", FALSE);
public static final BooleanSetting HIDE_CLIP_BUTTON = new BooleanSetting("revanced_hide_clip_button", TRUE);
public static final BooleanSetting HIDE_DOWNLOAD_BUTTON = new BooleanSetting("revanced_hide_download_button", FALSE);
public static final BooleanSetting HIDE_LIKE_DISLIKE_BUTTON = new BooleanSetting("revanced_hide_like_dislike_button", FALSE);
@@ -228,7 +228,9 @@ public class Settings extends BaseSettings {
public static final BooleanSetting HIDE_SHORTS_BUTTON = new BooleanSetting("revanced_hide_shorts_button", TRUE, true);
public static final BooleanSetting HIDE_SUBSCRIPTIONS_BUTTON = new BooleanSetting("revanced_hide_subscriptions_button", FALSE, true);
public static final BooleanSetting HIDE_NAVIGATION_BUTTON_LABELS = new BooleanSetting("revanced_hide_navigation_button_labels", FALSE, true);
public static final BooleanSetting SWITCH_CREATE_WITH_NOTIFICATIONS_BUTTON = new BooleanSetting("revanced_switch_create_with_notifications_button", TRUE, true);
public static final BooleanSetting HIDE_NOTIFICATIONS_BUTTON = new BooleanSetting("revanced_hide_notifications_button", FALSE, true);
public static final BooleanSetting SWITCH_CREATE_WITH_NOTIFICATIONS_BUTTON = new BooleanSetting("revanced_switch_create_with_notifications_button", TRUE, true,
"revanced_switch_create_with_notifications_button_user_dialog_message");
public static final BooleanSetting DISABLE_TRANSLUCENT_STATUS_BAR = new BooleanSetting("revanced_disable_translucent_status_bar", FALSE, true);
public static final BooleanSetting DISABLE_TRANSLUCENT_NAVIGATION_BAR_LIGHT = new BooleanSetting("revanced_disable_translucent_navigation_bar_light", FALSE, true);
public static final BooleanSetting DISABLE_TRANSLUCENT_NAVIGATION_BAR_DARK = new BooleanSetting("revanced_disable_translucent_navigation_bar_dark", FALSE, true);
@@ -282,7 +284,6 @@ public class Settings extends BaseSettings {
"revanced_seekbar_thumbnails_high_quality_dialog_message", new SeekbarThumbnailsHighQualityAvailability());
public static final BooleanSetting SLIDE_TO_SEEK = new BooleanSetting("revanced_slide_to_seek", FALSE, true);
public static final BooleanSetting SEEKBAR_CUSTOM_COLOR = new BooleanSetting("revanced_seekbar_custom_color", FALSE, true);
private static final StringSetting DEPRECATED_SEEKBAR_CUSTOM_COLOR_PRIMARY = new StringSetting("revanced_seekbar_custom_color_value", "#FF0033");
public static final StringSetting SEEKBAR_CUSTOM_COLOR_PRIMARY = new StringSetting("revanced_seekbar_custom_color_primary", "#FF0033", true, parent(SEEKBAR_CUSTOM_COLOR));
public static final StringSetting SEEKBAR_CUSTOM_COLOR_ACCENT = new StringSetting("revanced_seekbar_custom_color_accent", "#FF2791", true, parent(SEEKBAR_CUSTOM_COLOR));
@@ -320,7 +321,6 @@ public class Settings extends BaseSettings {
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
public static final IntegerSetting SWIPE_OVERLAY_OPACITY = new IntegerSetting("revanced_swipe_overlay_background_opacity", 60, true,
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
private static final IntegerSetting DEPRECATED_SWIPE_OVERLAY_BACKGROUND_ALPHA = new IntegerSetting("revanced_swipe_overlay_background_alpha", 127);
public static final LongSetting SWIPE_OVERLAY_TIMEOUT = new LongSetting("revanced_swipe_overlay_timeout", 500L, true,
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
public static final BooleanSetting SWIPE_SAVE_AND_RESTORE_BRIGHTNESS = new BooleanSetting("revanced_swipe_save_and_restore_brightness", TRUE, true, parent(SWIPE_BRIGHTNESS));
@@ -382,9 +382,12 @@ public class Settings extends BaseSettings {
public static final StringSetting SB_CATEGORY_UNSUBMITTED_COLOR = new StringSetting("sb_unsubmitted_color", "#FFFFFF");
// Deprecated migrations
public static final StringSetting DEPRECATED_SB_UUID_OLD_MIGRATION_SETTING = new StringSetting("uuid", ""); // Delete sometime in 2024
private static final StringSetting DEPRECATED_SB_UUID_OLD_MIGRATION_SETTING = new StringSetting("uuid", ""); // Delete sometime in 2024
private static final BooleanSetting DEPRECATED_HIDE_PLAYER_BUTTONS = new BooleanSetting("revanced_hide_player_buttons", FALSE, true);
private static final BooleanSetting DEPRECATED_HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER = new BooleanSetting("revanced_hide_video_quality_menu_footer", FALSE);
private static final IntegerSetting DEPRECATED_SWIPE_OVERLAY_BACKGROUND_ALPHA = new IntegerSetting("revanced_swipe_overlay_background_alpha", 127);
private static final StringSetting DEPRECATED_SEEKBAR_CUSTOM_COLOR_PRIMARY = new StringSetting("revanced_seekbar_custom_color_value", "#FF0033");
private static final BooleanSetting DEPRECATED_DISABLE_SUGGESTED_VIDEO_END_SCREEN = new BooleanSetting("revanced_disable_suggested_video_end_screen", FALSE);
static {
// region Migration
@@ -403,11 +406,7 @@ public class Settings extends BaseSettings {
migrateOldSettingToNew(DEPRECATED_HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER, HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER);
// Old spoof versions that no longer work reliably.
if (SPOOF_APP_VERSION_TARGET.get().compareTo(SPOOF_APP_VERSION_TARGET.defaultValue) < 0) {
Logger.printInfo(() -> "Resetting spoof app version target");
SPOOF_APP_VERSION_TARGET.resetToDefault();
}
migrateOldSettingToNew(DEPRECATED_DISABLE_SUGGESTED_VIDEO_END_SCREEN, HIDE_END_SCREEN_SUGGESTED_VIDEO);
// Migrate renamed enum.
//noinspection deprecation

View File

@@ -3,7 +3,9 @@ package app.revanced.extension.youtube.shared;
import static app.revanced.extension.youtube.shared.NavigationBar.NavigationButton.CREATE;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.widget.FrameLayout;
import androidx.annotation.Nullable;
@@ -24,12 +26,22 @@ import app.revanced.extension.youtube.settings.Settings;
@SuppressWarnings("unused")
public final class NavigationBar {
/**
* Interface to call obfuscated methods in AppCompat Toolbar class.
*/
public interface AppCompatToolbarPatchInterface {
Drawable patch_getNavigationIcon();
}
//
// Search bar
// Search and toolbar.
//
private static volatile WeakReference<View> searchBarResultsRef = new WeakReference<>(null);
private static volatile WeakReference<AppCompatToolbarPatchInterface> toolbarResultsRef
= new WeakReference<>(null);
/**
* Injection point.
*/
@@ -37,6 +49,22 @@ public final class NavigationBar {
searchBarResultsRef = new WeakReference<>(searchbarResults);
}
/**
* Injection point.
*/
public static void setToolbar(FrameLayout layout) {
AppCompatToolbarPatchInterface toolbar = Utils.getChildView(layout, false, (view) ->
view instanceof AppCompatToolbarPatchInterface
);
if (toolbar == null) {
Logger.printException(() -> "Could not find navigation toolbar");
return;
}
toolbarResultsRef = new WeakReference<>(toolbar);
}
/**
* @return If the search bar is on screen. This includes if the player
* is on screen and the search results are behind the player (and not visible).
@@ -47,8 +75,13 @@ public final class NavigationBar {
return searchbarResults != null && searchbarResults.getParent() != null;
}
public static boolean isBackButtonVisible() {
AppCompatToolbarPatchInterface toolbar = toolbarResultsRef.get();
return toolbar != null && toolbar.patch_getNavigationIcon() != null;
}
//
// Navigation bar buttons
// Navigation bar buttons.
//
/**

View File

@@ -21,9 +21,6 @@ enum class PlayerType {
/**
* A regular video is minimized.
*
* When spoofing to 16.x YouTube and watching a short with a regular video in the background,
* the type can be this (and not [HIDDEN]).
*/
WATCH_WHILE_MINIMIZED,
WATCH_WHILE_MAXIMIZED,
@@ -56,8 +53,7 @@ enum class PlayerType {
val newType = nameToPlayerType[enumName]
if (newType == null) {
Logger.printException { "Unknown PlayerType encountered: $enumName" }
} else if (current != newType) {
Logger.printDebug { "PlayerType changed to: $newType" }
} else {
current = newType
}
}
@@ -68,9 +64,13 @@ enum class PlayerType {
@JvmStatic
var current
get() = currentPlayerType
private set(value) {
currentPlayerType = value
onChange(currentPlayerType)
private set(type) {
if (currentPlayerType != type) {
Logger.printDebug { "Changed to: $type" }
currentPlayerType = type
onChange(type)
}
}
@Volatile // Read/write from different threads.

View File

@@ -0,0 +1,56 @@
package app.revanced.extension.youtube.sponsorblock.ui;
import android.view.View;
import androidx.annotation.Nullable;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.youtube.patches.VideoInformation;
import app.revanced.extension.youtube.settings.Settings;
import app.revanced.extension.youtube.videoplayer.PlayerControlButton;
public class CreateSegmentButton {
@Nullable
private static PlayerControlButton instance;
public static void hideControls() {
if (instance != null) instance.hide();
}
/**
* injection point
*/
public static void initialize(View controlsView) {
try {
instance = new PlayerControlButton(
controlsView,
"revanced_sb_create_segment_button",
null,
CreateSegmentButton::shouldBeShown,
v -> SponsorBlockViewController.toggleNewSegmentLayoutVisibility(),
null
);
} catch (Exception ex) {
Logger.printException(() -> "initialize failure", ex);
}
}
/**
* Injection point
*/
public static void setVisibilityImmediate(boolean visible) {
if (instance != null) instance.setVisibilityImmediate(visible);
}
/**
* Injection point
*/
public static void setVisibility(boolean visible, boolean animated) {
if (instance != null) instance.setVisibility(visible, animated);
}
private static boolean shouldBeShown() {
return Settings.SB_ENABLED.get() && Settings.SB_CREATE_NEW_SEGMENT.get()
&& !VideoInformation.isAtEndOfVideo();
}
}

View File

@@ -1,111 +0,0 @@
package app.revanced.extension.youtube.sponsorblock.ui;
import static app.revanced.extension.shared.Utils.getResourceIdentifier;
import android.view.View;
import android.widget.ImageView;
import java.lang.ref.WeakReference;
import java.util.Objects;
import app.revanced.extension.youtube.patches.VideoInformation;
import app.revanced.extension.youtube.settings.Settings;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
import app.revanced.extension.youtube.videoplayer.PlayerControlButton;
// Edit: This should be a subclass of PlayerControlButton
public class CreateSegmentButtonController {
private static WeakReference<ImageView> buttonReference = new WeakReference<>(null);
private static boolean isShowing;
/**
* injection point
*/
public static void initialize(View youtubeControlsLayout) {
try {
Logger.printDebug(() -> "initializing new segment button");
ImageView imageView = Objects.requireNonNull(Utils.getChildViewByResourceName(
youtubeControlsLayout, "revanced_sb_create_segment_button"));
imageView.setVisibility(View.GONE);
imageView.setOnClickListener(v -> SponsorBlockViewController.toggleNewSegmentLayoutVisibility());
buttonReference = new WeakReference<>(imageView);
} catch (Exception ex) {
Logger.printException(() -> "initialize failure", ex);
}
}
/**
* injection point
*/
public static void changeVisibilityImmediate(boolean visible) {
if (visible) {
// Fix button flickering, by pushing this call to the back of
// the main thread and letting other layout code run first.
Utils.runOnMainThread(() -> setVisibility(true, false));
} else {
setVisibility(false, false);
}
}
/**
* injection point
*/
public static void changeVisibility(boolean visible, boolean animated) {
// Ignore this call, otherwise with full screen thumbnails the buttons are visible while seeking.
if (visible && !animated) return;
setVisibility(visible, animated);
}
private static void setVisibility(boolean visible, boolean animated) {
try {
if (isShowing == visible) return;
isShowing = visible;
ImageView iView = buttonReference.get();
if (iView == null) return;
if (visible) {
iView.clearAnimation();
if (!shouldBeShown()) {
return;
}
if (animated) {
iView.startAnimation(PlayerControlButton.getButtonFadeIn());
}
iView.setVisibility(View.VISIBLE);
return;
}
if (iView.getVisibility() == View.VISIBLE) {
iView.clearAnimation();
if (animated) {
iView.startAnimation(PlayerControlButton.getButtonFadeOut());
}
iView.setVisibility(View.GONE);
}
} catch (Exception ex) {
Logger.printException(() -> "changeVisibility failure", ex);
}
}
private static boolean shouldBeShown() {
return Settings.SB_ENABLED.get() && Settings.SB_CREATE_NEW_SEGMENT.get()
&& !VideoInformation.isAtEndOfVideo();
}
public static void hide() {
if (!isShowing) {
return;
}
Utils.verifyOnMainThread();
View v = buttonReference.get();
if (v == null) {
return;
}
v.setVisibility(View.GONE);
isShowing = false;
}
}

View File

@@ -238,8 +238,8 @@ public class SponsorBlockViewController {
// but if buttons are showing when the end of the video is reached then they need
// to be forcefully hidden
if (!Settings.AUTO_REPEAT.get()) {
CreateSegmentButtonController.hide();
VotingButtonController.hide();
CreateSegmentButton.hideControls();
VotingButton.hideControls();
}
} catch (Exception ex) {
Logger.printException(() -> "endOfVideoReached failure", ex);

View File

@@ -0,0 +1,58 @@
package app.revanced.extension.youtube.sponsorblock.ui;
import android.view.View;
import androidx.annotation.Nullable;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.youtube.patches.VideoInformation;
import app.revanced.extension.youtube.settings.Settings;
import app.revanced.extension.youtube.sponsorblock.SegmentPlaybackController;
import app.revanced.extension.youtube.sponsorblock.SponsorBlockUtils;
import app.revanced.extension.youtube.videoplayer.PlayerControlButton;
public class VotingButton {
@Nullable
private static PlayerControlButton instance;
public static void hideControls() {
if (instance != null) instance.hide();
}
/**
* injection point
*/
public static void initialize(View controlsView) {
try {
instance = new PlayerControlButton(
controlsView,
"revanced_sb_voting_button",
null,
VotingButton::shouldBeShown,
v -> SponsorBlockUtils.onVotingClicked(v.getContext()),
null
);
} catch (Exception ex) {
Logger.printException(() -> "initialize failure", ex);
}
}
/**
* Injection point
*/
public static void setVisibilityImmediate(boolean visible) {
if (instance != null) instance.setVisibilityImmediate(visible);
}
/**
* Injection point
*/
public static void setVisibility(boolean visible, boolean animated) {
if (instance != null) instance.setVisibility(visible, animated);
}
private static boolean shouldBeShown() {
return Settings.SB_ENABLED.get() && Settings.SB_VOTING_BUTTON.get()
&& SegmentPlaybackController.videoHasSegments() && !VideoInformation.isAtEndOfVideo();
}
}

View File

@@ -1,116 +0,0 @@
package app.revanced.extension.youtube.sponsorblock.ui;
import static app.revanced.extension.shared.Utils.getResourceIdentifier;
import android.view.View;
import android.widget.ImageView;
import java.lang.ref.WeakReference;
import java.util.Objects;
import app.revanced.extension.youtube.patches.VideoInformation;
import app.revanced.extension.youtube.settings.Settings;
import app.revanced.extension.youtube.sponsorblock.SegmentPlaybackController;
import app.revanced.extension.youtube.sponsorblock.SponsorBlockUtils;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
import app.revanced.extension.youtube.videoplayer.PlayerControlButton;
// Edit: This should be a subclass of PlayerControlButton
public class VotingButtonController {
private static WeakReference<ImageView> buttonReference = new WeakReference<>(null);
private static boolean isShowing;
/**
* injection point
*/
public static void initialize(View youtubeControlsLayout) {
try {
Logger.printDebug(() -> "initializing voting button");
ImageView imageView = Objects.requireNonNull(Utils.getChildViewByResourceName(
youtubeControlsLayout, "revanced_sb_voting_button"));
imageView.setVisibility(View.GONE);
imageView.setOnClickListener(v -> SponsorBlockUtils.onVotingClicked(v.getContext()));
buttonReference = new WeakReference<>(imageView);
} catch (Exception ex) {
Logger.printException(() -> "initialize failure", ex);
}
}
/**
* injection point
*/
public static void changeVisibilityImmediate(boolean visible) {
if (visible) {
// Fix button flickering, by pushing this call to the back of
// the main thread and letting other layout code run first.
Utils.runOnMainThread(() -> setVisibility(true, false));
} else {
setVisibility(false, false);
}
}
/**
* injection point
*/
public static void changeVisibility(boolean visible, boolean animated) {
// Ignore this call, otherwise with full screen thumbnails the buttons are visible while seeking.
if (visible && !animated) return;
setVisibility(visible, animated);
}
/**
* injection point
*/
private static void setVisibility(boolean visible, boolean animated) {
try {
if (isShowing == visible) return;
isShowing = visible;
ImageView iView = buttonReference.get();
if (iView == null) return;
if (visible) {
iView.clearAnimation();
if (!shouldBeShown()) {
return;
}
if (animated) {
iView.startAnimation(PlayerControlButton.getButtonFadeIn());
}
iView.setVisibility(View.VISIBLE);
return;
}
if (iView.getVisibility() == View.VISIBLE) {
iView.clearAnimation();
if (animated) {
iView.startAnimation(PlayerControlButton.getButtonFadeOut());
}
iView.setVisibility(View.GONE);
}
} catch (Exception ex) {
Logger.printException(() -> "changeVisibility failure", ex);
}
}
private static boolean shouldBeShown() {
return Settings.SB_ENABLED.get() && Settings.SB_VOTING_BUTTON.get()
&& SegmentPlaybackController.videoHasSegments() && !VideoInformation.isAtEndOfVideo();
}
public static void hide() {
if (!isShowing) {
return;
}
Utils.verifyOnMainThread();
View v = buttonReference.get();
if (v == null) {
return;
}
v.setVisibility(View.GONE);
isShowing = false;
}
}

View File

@@ -18,7 +18,7 @@ import kotlin.math.min
import kotlin.math.round
/**
* Main overlay layout for displaying volume and brightness level with both circular and rectangular progress bars.
* Main overlay layout for displaying volume and brightness level with both circular and horizontal progress bars.
*/
class SwipeControlsOverlayLayout(
context: Context,
@@ -69,7 +69,7 @@ class SwipeControlsOverlayLayout(
}
addView(circularProgressView)
// Initialize rectangular progress bar
// Initialize horizontal progress bar
val screenWidth = resources.displayMetrics.widthPixels
val layoutWidth = (screenWidth * 2 / 3).toInt() // 2/3 of screen width
horizontalProgressView = HorizontalProgressView(
@@ -152,10 +152,7 @@ class SwipeControlsOverlayLayout(
}
/**
* Abstract base class for progress views to reduce code duplication.
*/
/**
* Abstract base class for progress views to reduce code duplication.
* Abstract base class for progress views.
*/
abstract class AbstractProgressView(
context: Context,
@@ -183,10 +180,9 @@ abstract class AbstractProgressView(
public val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
color = overlayTextColor
textAlign = Paint.Align.CENTER
textSize = 30f // Can adjust based on need
textSize = 40f // Can adjust based on need
}
protected var progress = 0
protected var maxProgress = 100
protected var displayText: String = "0"
@@ -211,7 +207,7 @@ abstract class AbstractProgressView(
}
/**
* Custom view for rendering a circular progress indicator with text and icon.
* Custom view for rendering a circular progress indicator with icons and text.
*/
class CircularProgressView(
context: Context,
@@ -235,7 +231,7 @@ class CircularProgressView(
private val rectF = RectF()
init {
textPaint.textSize = 40f // Override default text size for horizontal view
textPaint.textSize = 40f // Override default text size for circular view
progressPaint.strokeWidth = 20f
fillBackgroundPaint.strokeWidth = 20f
progressPaint.strokeCap = Paint.Cap.ROUND
@@ -266,7 +262,7 @@ class CircularProgressView(
it.draw(canvas)
}
// If not in icon-only mode, draw the text inside the ring.
// If not a minimal style mode, draw the text inside the ring.
if (!overlayShowOverlayMinimalStyle) {
canvas.drawText(displayText, width / 2f, height / 2f + 60f, textPaint)
}
@@ -300,7 +296,7 @@ class HorizontalProgressView(
private val padding = 40f
init {
textPaint.textSize = 30f // Override default text size for horizontal view
textPaint.textSize = 36f // Override default text size for horizontal view
progressPaint.strokeWidth = 0f
progressPaint.strokeCap = Paint.Cap.BUTT
progressPaint.style = Paint.Style.FILL

View File

@@ -1,38 +1,35 @@
package app.revanced.extension.youtube.videoplayer;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.Nullable;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.youtube.patches.CopyVideoUrlPatch;
import app.revanced.extension.youtube.settings.Settings;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.youtube.shared.PlayerType;
@SuppressWarnings("unused")
public class CopyVideoUrlButton extends PlayerControlButton {
public class CopyVideoUrlButton {
@Nullable
private static CopyVideoUrlButton instance;
public CopyVideoUrlButton(ViewGroup viewGroup) {
super(
viewGroup,
"revanced_copy_video_url_button",
Settings.COPY_VIDEO_URL,
view -> CopyVideoUrlPatch.copyUrl(false),
view -> {
CopyVideoUrlPatch.copyUrl(true);
return true;
}
);
}
private static PlayerControlButton instance;
/**
* Injection point.
*/
public static void initializeButton(View view) {
public static void initializeButton(View controlsView) {
try {
instance = new CopyVideoUrlButton((ViewGroup) view);
instance = new PlayerControlButton(
controlsView,
"revanced_copy_video_url_button",
"revanced_copy_video_url_button_placeholder",
Settings.COPY_VIDEO_URL::get,
view -> CopyVideoUrlPatch.copyUrl(false),
view -> {
CopyVideoUrlPatch.copyUrl(true);
return true;
}
);
} catch (Exception ex) {
Logger.printException(() -> "initializeButton failure", ex);
}
@@ -41,14 +38,14 @@ public class CopyVideoUrlButton extends PlayerControlButton {
/**
* injection point
*/
public static void changeVisibilityImmediate(boolean visible) {
public static void setVisibilityImmediate(boolean visible) {
if (instance != null) instance.setVisibilityImmediate(visible);
}
/**
* injection point
*/
public static void changeVisibility(boolean visible, boolean animated) {
public static void setVisibility(boolean visible, boolean animated) {
if (instance != null) instance.setVisibility(visible, animated);
}
}

View File

@@ -1,38 +1,35 @@
package app.revanced.extension.youtube.videoplayer;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.Nullable;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.youtube.patches.CopyVideoUrlPatch;
import app.revanced.extension.youtube.settings.Settings;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.youtube.shared.PlayerType;
@SuppressWarnings("unused")
public class CopyVideoUrlTimestampButton extends PlayerControlButton {
public class CopyVideoUrlTimestampButton {
@Nullable
private static CopyVideoUrlTimestampButton instance;
public CopyVideoUrlTimestampButton(ViewGroup bottomControlsViewGroup) {
super(
bottomControlsViewGroup,
"revanced_copy_video_url_timestamp_button",
Settings.COPY_VIDEO_URL_TIMESTAMP,
view -> CopyVideoUrlPatch.copyUrl(true),
view -> {
CopyVideoUrlPatch.copyUrl(false);
return true;
}
);
}
private static PlayerControlButton instance;
/**
* Injection point.
*/
public static void initializeButton(View bottomControlsViewGroup) {
public static void initializeButton(View controlsView) {
try {
instance = new CopyVideoUrlTimestampButton((ViewGroup) bottomControlsViewGroup);
instance = new PlayerControlButton(
controlsView,
"revanced_copy_video_url_timestamp_button",
"revanced_copy_video_url_timestamp_button_placeholder",
Settings.COPY_VIDEO_URL_TIMESTAMP::get,
view -> CopyVideoUrlPatch.copyUrl(true),
view -> {
CopyVideoUrlPatch.copyUrl(false);
return true;
}
);
} catch (Exception ex) {
Logger.printException(() -> "initializeButton failure", ex);
}
@@ -41,14 +38,14 @@ public class CopyVideoUrlTimestampButton extends PlayerControlButton {
/**
* injection point
*/
public static void changeVisibilityImmediate(boolean visible) {
public static void setVisibilityImmediate(boolean visible) {
if (instance != null) instance.setVisibilityImmediate(visible);
}
/**
* injection point
*/
public static void changeVisibility(boolean visible, boolean animated) {
public static void setVisibility(boolean visible, boolean animated) {
if (instance != null) instance.setVisibility(visible, animated);
}
}

View File

@@ -1,7 +1,6 @@
package app.revanced.extension.youtube.videoplayer;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.Nullable;
@@ -11,26 +10,23 @@ import app.revanced.extension.youtube.patches.VideoInformation;
import app.revanced.extension.youtube.settings.Settings;
@SuppressWarnings("unused")
public class ExternalDownloadButton extends PlayerControlButton {
public class ExternalDownloadButton {
@Nullable
private static ExternalDownloadButton instance;
public ExternalDownloadButton(ViewGroup viewGroup) {
super(
viewGroup,
"revanced_external_download_button",
Settings.EXTERNAL_DOWNLOADER,
ExternalDownloadButton::onDownloadClick,
null
);
}
private static PlayerControlButton instance;
/**
* Injection point.
*/
public static void initializeButton(View view) {
public static void initializeButton(View controlsView) {
try {
instance = new ExternalDownloadButton((ViewGroup) view);
instance = new PlayerControlButton(
controlsView,
"revanced_external_download_button",
"revanced_external_download_button_placeholder",
Settings.EXTERNAL_DOWNLOADER::get,
ExternalDownloadButton::onDownloadClick,
null
);
} catch (Exception ex) {
Logger.printException(() -> "initializeButton failure", ex);
}
@@ -39,14 +35,14 @@ public class ExternalDownloadButton extends PlayerControlButton {
/**
* injection point
*/
public static void changeVisibilityImmediate(boolean visible) {
public static void setVisibilityImmediate(boolean visible) {
if (instance != null) instance.setVisibilityImmediate(visible);
}
/**
* injection point
* Injection point
*/
public static void changeVisibility(boolean visible, boolean animated) {
public static void setVisibility(boolean visible, boolean animated) {
if (instance != null) instance.setVisibility(visible, animated);
}

View File

@@ -1,35 +1,31 @@
package app.revanced.extension.youtube.videoplayer;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.Nullable;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.youtube.patches.playback.speed.CustomPlaybackSpeedPatch;
import app.revanced.extension.youtube.settings.Settings;
import app.revanced.extension.shared.Logger;
@SuppressWarnings("unused")
public class PlaybackSpeedDialogButton extends PlayerControlButton {
public class PlaybackSpeedDialogButton {
@Nullable
private static PlaybackSpeedDialogButton instance;
public PlaybackSpeedDialogButton(ViewGroup viewGroup) {
super(
viewGroup,
"revanced_playback_speed_dialog_button",
Settings.PLAYBACK_SPEED_DIALOG_BUTTON,
view -> CustomPlaybackSpeedPatch.showOldPlaybackSpeedMenu(),
null
);
}
private static PlayerControlButton instance;
/**
* Injection point.
*/
public static void initializeButton(View view) {
public static void initializeButton(View controlsView) {
try {
instance = new PlaybackSpeedDialogButton((ViewGroup) view);
instance = new PlayerControlButton(
controlsView,
"revanced_playback_speed_dialog_button",
"revanced_playback_speed_dialog_button_placeholder",
Settings.PLAYBACK_SPEED_DIALOG_BUTTON::get,
view -> CustomPlaybackSpeedPatch.showOldPlaybackSpeedMenu(),
null
);
} catch (Exception ex) {
Logger.printException(() -> "initializeButton failure", ex);
}
@@ -38,14 +34,14 @@ public class PlaybackSpeedDialogButton extends PlayerControlButton {
/**
* injection point
*/
public static void changeVisibilityImmediate(boolean visible) {
public static void setVisibilityImmediate(boolean visible) {
if (instance != null) instance.setVisibilityImmediate(visible);
}
/**
* injection point
*/
public static void changeVisibility(boolean visible, boolean animated) {
public static void setVisibility(boolean visible, boolean animated) {
if (instance != null) instance.setVisibility(visible, animated);
}
}

View File

@@ -1,73 +1,92 @@
package app.revanced.extension.youtube.videoplayer;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.lang.ref.WeakReference;
import java.util.Objects;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
import app.revanced.extension.shared.settings.BooleanSetting;
import app.revanced.extension.youtube.shared.PlayerType;
import kotlin.Unit;
public abstract class PlayerControlButton {
private static final Animation fadeIn;
private static final Animation fadeOut;
public class PlayerControlButton {
public interface PlayerControlButtonVisibility {
/**
* @return If the button should be shown when the player overlay is visible.
*/
boolean shouldBeShown();
}
private static final int fadeInDuration;
private static final int fadeOutDuration;
private static final Animation fadeInAnimation;
private static final Animation fadeOutAnimation;
private static final Animation fadeOutImmediate;
private final WeakReference<ImageView> buttonRef;
protected final BooleanSetting setting;
protected boolean isVisible;
static {
// TODO: check if these durations are correct.
fadeIn = Utils.getResourceAnimation("fade_in");
fadeIn.setDuration(Utils.getResourceInteger("fade_duration_fast"));
fadeInDuration = Utils.getResourceInteger("fade_duration_fast");
fadeOutDuration = Utils.getResourceInteger("fade_duration_scheduled");
fadeOut = Utils.getResourceAnimation("fade_out");
fadeOut.setDuration(Utils.getResourceInteger("fade_duration_scheduled"));
fadeInAnimation = Utils.getResourceAnimation("fade_in");
fadeInAnimation.setDuration(fadeInDuration);
fadeOutAnimation = Utils.getResourceAnimation("fade_out");
fadeOutAnimation.setDuration(fadeOutDuration);
// Animation for the fast fade out after tapping the overlay.
// Currently not used but should be.
fadeOutImmediate = Utils.getResourceAnimation("abc_fade_out");
fadeOutImmediate.setDuration(Utils.getResourceInteger("fade_duration_fast"));
}
@NonNull
public static Animation getButtonFadeIn() {
return fadeIn;
}
private final WeakReference<View> buttonRef;
/**
* Empty view with the same layout size as the button. Used to fill empty space while the
* fade out animation runs. Without this the chapter titles overlapping the button when fading out.
*/
private final WeakReference<View> placeHolderRef;
private final PlayerControlButtonVisibility visibilityCheck;
private boolean isVisible;
@NonNull
public static Animation getButtonFadeOut() {
return fadeOut;
}
@NonNull
public static Animation getButtonFadeOutImmediately() {
return fadeOutImmediate;
}
public PlayerControlButton(@NonNull ViewGroup bottomControlsViewGroup, @NonNull String imageViewButtonId,
@NonNull BooleanSetting booleanSetting, @NonNull View.OnClickListener onClickListener,
public PlayerControlButton(View controlsViewGroup,
String imageViewButtonId,
@Nullable String placeholderId,
PlayerControlButtonVisibility buttonVisibility,
View.OnClickListener onClickListener,
@Nullable View.OnLongClickListener longClickListener) {
Logger.printDebug(() -> "Initializing button: " + imageViewButtonId);
ImageView imageView = Objects.requireNonNull(bottomControlsViewGroup.findViewById(
Utils.getResourceIdentifier(imageViewButtonId, "id")
));
ImageView imageView = Utils.getChildViewByResourceName(controlsViewGroup, imageViewButtonId);
imageView.setVisibility(View.GONE);
View tempPlaceholder = null;
if (placeholderId != null) {
tempPlaceholder = Utils.getChildViewByResourceName(controlsViewGroup, placeholderId);
tempPlaceholder.setVisibility(View.GONE);
}
placeHolderRef = new WeakReference<>(tempPlaceholder);
imageView.setOnClickListener(onClickListener);
if (longClickListener != null) {
imageView.setOnLongClickListener(longClickListener);
}
setting = booleanSetting;
visibilityCheck = buttonVisibility;
buttonRef = new WeakReference<>(imageView);
isVisible = false;
// Update the visibility after the player type changes.
// This ensures that button animations are cleared and their states are updated correctly
// when switching between states like minimized, maximized, or fullscreen, preventing
// "stuck" animations or incorrect visibility. Without this fix the issue is most noticable
// when maximizing type 3 miniplayer.
PlayerType.getOnChange().addObserver((PlayerType type) -> {
playerTypeChanged(type);
return Unit.INSTANCE;
});
}
public void setVisibilityImmediate(boolean visible) {
@@ -92,26 +111,80 @@ public abstract class PlayerControlButton {
if (isVisible == visible) return;
isVisible = visible;
ImageView iView = buttonRef.get();
if (iView == null) {
return;
}
View button = buttonRef.get();
if (button == null) return;
if (visible && setting.get()) {
iView.clearAnimation();
View placeholder = placeHolderRef.get();
final boolean shouldBeShown = visibilityCheck.shouldBeShown();
if (visible && shouldBeShown) {
button.clearAnimation();
if (animated) {
iView.startAnimation(PlayerControlButton.getButtonFadeIn());
button.startAnimation(PlayerControlButton.fadeInAnimation);
}
iView.setVisibility(View.VISIBLE);
} else if (iView.getVisibility() == View.VISIBLE) {
iView.clearAnimation();
if (animated) {
iView.startAnimation(PlayerControlButton.getButtonFadeOut());
button.setVisibility(View.VISIBLE);
if (placeholder != null) {
placeholder.setVisibility(View.GONE);
}
} else {
if (button.getVisibility() == View.VISIBLE) {
button.clearAnimation();
if (animated) {
button.startAnimation(PlayerControlButton.fadeOutAnimation);
}
button.setVisibility(View.GONE);
}
if (placeholder != null) {
placeholder.setVisibility(shouldBeShown
? View.VISIBLE
: View.GONE);
}
iView.setVisibility(View.GONE);
}
} catch (Exception ex) {
Logger.printException(() -> "setVisibility failure", ex);
Logger.printException(() -> "private_setVisibility failure", ex);
}
}
}
/**
* Synchronizes the button state after the player state changes.
*/
private void playerTypeChanged(PlayerType newType) {
if (newType != PlayerType.WATCH_WHILE_MINIMIZED && !newType.isMaximizedOrFullscreen()) {
return;
}
View button = buttonRef.get();
if (button == null) return;
button.clearAnimation();
View placeholder = placeHolderRef.get();
if (visibilityCheck.shouldBeShown()) {
if (isVisible) {
button.setVisibility(View.VISIBLE);
if (placeholder != null) placeholder.setVisibility(View.GONE);
} else {
button.setVisibility(View.GONE);
if (placeholder != null) placeholder.setVisibility(View.VISIBLE);
}
} else {
button.setVisibility(View.GONE);
if (placeholder != null) placeholder.setVisibility(View.GONE);
}
}
public void hide() {
if (!isVisible) return;
Utils.verifyOnMainThread();
View view = buttonRef.get();
if (view == null) return;
view.setVisibility(View.GONE);
view = placeHolderRef.get();
if (view != null) view.setVisibility(View.GONE);
isVisible = false;
}
}

View File

@@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M
org.gradle.parallel = true
android.useAndroidX = true
kotlin.code.style = official
version = 5.13.0-dev.1
version = 5.13.1-dev.1

View File

@@ -348,6 +348,14 @@ public final class app/revanced/patches/nfctoolsse/misc/pro/UnlockProPatchKt {
public static final fun getUnlockProPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/nunl/ads/HideAdsPatchKt {
public static final fun getHideAdsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/nunl/firebase/SpoofCertificatePatchKt {
public static final fun getSpoofCertificatePatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/nyx/misc/pro/UnlockProPatchKt {
public static final fun getUnlockProPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
@@ -768,8 +776,8 @@ public final class app/revanced/patches/shared/misc/settings/preference/TextPref
}
public final class app/revanced/patches/shared/misc/spoof/SpoofVideoStreamsPatchKt {
public static final fun spoofVideoStreamsPatch (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Lapp/revanced/patcher/patch/BytecodePatch;
public static synthetic fun spoofVideoStreamsPatch$default (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lapp/revanced/patcher/patch/BytecodePatch;
public static final fun spoofVideoStreamsPatch (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Lapp/revanced/patcher/patch/BytecodePatch;
public static synthetic fun spoofVideoStreamsPatch$default (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/shared/misc/spoof/UserAgentClientSpoofPatchKt {
@@ -1116,6 +1124,10 @@ public final class app/revanced/patches/youtube/layout/hide/endscreencards/HideE
public static final fun getHideEndscreenCardsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/youtube/layout/hide/endscreensuggestion/HideEndScreenSuggestedVideoPatchKt {
public static final fun getHideEndScreenSuggestedVideoPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/youtube/layout/hide/fullscreenambientmode/DisableFullscreenAmbientModePatchKt {
public static final fun getDisableFullscreenAmbientModePatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}

View File

@@ -8,9 +8,8 @@ import org.w3c.dom.Element
@Suppress("unused")
val changeVersionCodePatch = resourcePatch(
name = "Change version code",
description = "Changes the version code of the app. By default the highest version code is set. " +
"This allows older versions of an app to be installed " +
"if their version code is set to the same or a higher value and can stop app stores to update the app.",
description = "Changes the version code of the app. This will turn off app store updates " +
"and allows downgrading an existing app install to an older app version.",
use = false,
) {
val versionCode by intOption(
@@ -21,7 +20,8 @@ val changeVersionCodePatch = resourcePatch(
"Highest" to Int.MAX_VALUE,
),
title = "Version code",
description = "The version code to use",
description = "The version code to use. Using the highest value turns off app store " +
"updates and allows downgrading an existing app install to an older app version.",
required = true,
) { versionCode -> versionCode!! >= 1 }

View File

@@ -0,0 +1,44 @@
package app.revanced.patches.nunl.ads
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val jwUtilCreateAdvertisementFingerprint = fingerprint {
accessFlags(AccessFlags.PRIVATE, AccessFlags.STATIC)
custom { methodDef, classDef ->
classDef.type == "Lnl/sanomamedia/android/nu/video/util/JWUtil;" && methodDef.name == "createAdvertising"
}
}
internal val screenMapperFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("Lnl/nu/android/bff/domain/models/screen/ScreenEntity;")
parameters("Lnl/nu/performance/api/client/objects/Screen;")
opcodes(
Opcode.MOVE_RESULT_OBJECT,
Opcode.IF_EQZ,
Opcode.CHECK_CAST
)
custom { methodDef, classDef ->
classDef.type == "Lnl/nu/android/bff/data/mappers/ScreenMapper;" && methodDef.name == "map"
}
}
internal val nextPageRepositoryImplFingerprint = fingerprint {
accessFlags(AccessFlags.PRIVATE, AccessFlags.FINAL)
returns("Lnl/nu/android/bff/domain/models/Page;")
parameters("Lnl/nu/performance/api/client/PacResponse;", "Ljava/lang/String;")
opcodes(
Opcode.MOVE_RESULT_OBJECT,
Opcode.IF_EQZ,
Opcode.CHECK_CAST
)
custom { methodDef, classDef ->
classDef.type == "Lnl/nu/android/bff/data/repositories/NextPageRepositoryImpl;" && methodDef.name == "mapToPage"
}
}

View File

@@ -0,0 +1,51 @@
package app.revanced.patches.nunl.ads
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.shared.misc.extension.sharedExtensionPatch
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
@Suppress("unused")
val hideAdsPatch = bytecodePatch(
name = "Hide ads",
description = "Hide ads and sponsored articles in list pages and remove pre-roll ads on videos.",
) {
compatibleWith("nl.sanomamedia.android.nu"("11.0.0", "11.0.1", "11.1.0"))
dependsOn(sharedExtensionPatch("nunl", mainActivityOnCreateHook))
execute {
// Disable video pre-roll ads.
// Whenever the app tries to create an ad via JWUtils.createAdvertising, don't actually tell the underlying JWPlayer library to do so => JWPlayer will not display ads.
jwUtilCreateAdvertisementFingerprint.method.addInstructions(
0,
"""
new-instance v0, Lcom/jwplayer/pub/api/configuration/ads/VastAdvertisingConfig${'$'}Builder;
invoke-direct { v0 }, Lcom/jwplayer/pub/api/configuration/ads/VastAdvertisingConfig${'$'}Builder;-><init>()V
invoke-virtual { v0 }, Lcom/jwplayer/pub/api/configuration/ads/VastAdvertisingConfig${'$'}Builder;->build()Lcom/jwplayer/pub/api/configuration/ads/VastAdvertisingConfig;
move-result-object v0
return-object v0
""",
)
// Filter injected content from API calls out of lists.
arrayOf(screenMapperFingerprint, nextPageRepositoryImplFingerprint).forEach {
// Index of instruction moving result of BlockPage;->getBlocks(...).
val moveGetBlocksResultObjectIndex = it.patternMatch!!.startIndex
it.method.apply {
val moveInstruction = getInstruction<OneRegisterInstruction>(moveGetBlocksResultObjectIndex)
val listRegister = moveInstruction.registerA
// Add instruction after moving List<Block> to register and then filter this List<Block> in place.
addInstructions(
moveGetBlocksResultObjectIndex + 1,
"""
invoke-static { v$listRegister }, Lapp/revanced/extension/nunl/ads/HideAdsPatch;->filterAds(Ljava/util/List;)V
""",
)
}
}
}
}

View File

@@ -0,0 +1,9 @@
package app.revanced.patches.nunl.ads
import app.revanced.patches.shared.misc.extension.extensionHook
internal val mainActivityOnCreateHook = extensionHook {
custom { method, classDef ->
classDef.type == "Lnl/sanomamedia/android/nu/main/NUMainActivity;" && method.name == "onCreate"
}
}

View File

@@ -0,0 +1,20 @@
package app.revanced.patches.nunl.firebase
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
internal val getFingerprintHashForPackageFingerprints = arrayOf(
"Lcom/google/firebase/installations/remote/FirebaseInstallationServiceClient;",
"Lcom/google/firebase/remoteconfig/internal/ConfigFetchHttpClient;",
"Lcom/google/firebase/remoteconfig/internal/ConfigRealtimeHttpClient;"
).map { className ->
fingerprint {
accessFlags(AccessFlags.PRIVATE)
parameters()
returns("Ljava/lang/String;")
custom { methodDef, classDef ->
classDef.type == className && methodDef.name == "getFingerprintHashForPackage"
}
}
}

View File

@@ -0,0 +1,24 @@
package app.revanced.patches.nunl.firebase
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch
@Suppress("unused")
val spoofCertificatePatch = bytecodePatch(
name = "Spoof certificate",
description = "Spoofs the X-Android-Cert header to allow push messages.",
) {
compatibleWith("nl.sanomamedia.android.nu")
execute {
getFingerprintHashForPackageFingerprints.forEach { fingerprint ->
fingerprint.method.addInstructions(
0,
"""
const-string v0, "eae41fc018df2731a9b6ae1ac327da44a288667b"
return-object v0
""",
)
}
}
}

View File

@@ -8,7 +8,7 @@ import com.android.tools.smali.dexlib2.immutable.ImmutableMethod
import com.android.tools.smali.dexlib2.immutable.ImmutableMethodImplementation
val spoofClientPatch = spoofClientPatch(redirectUri = "infinity://localhost") { clientIdOption ->
compatibleWith("ml.docilealligator.infinityforreddit")
compatibleWith("ml.docilealligator.infinityforreddit", "ml.docilealligator.infinityforreddit.plus")
val clientId by clientIdOption

View File

@@ -11,7 +11,7 @@ val unlockSubscriptionPatch = bytecodePatch(
) {
dependsOn(spoofClientPatch)
compatibleWith("ml.docilealligator.infinityforreddit")
compatibleWith("ml.docilealligator.infinityforreddit", "ml.docilealligator.infinityforreddit.plus")
execute {
setOf(

View File

@@ -137,3 +137,15 @@ internal val patchIncludedExtensionMethodFingerprint = fingerprint {
classDef.type == EXTENSION_CLASS_DESCRIPTOR && method.name == "isPatchIncluded"
}
}
// Feature flag that turns on Platypus programming language code compiled to native C++.
// This code appears to replace the player config after the streams are loaded.
// Flag is present in YouTube 19.34, but is missing Platypus stream replacement code until 19.43.
// Flag and Platypus code is also present in newer versions of YouTube Music.
internal const val MEDIA_FETCH_HOT_CONFIG_FEATURE_FLAG = 45645570L
internal val mediaFetchHotConfigFingerprint = fingerprint {
literal {
MEDIA_FETCH_HOT_CONFIG_FEATURE_FLAG
}
}

View File

@@ -31,10 +31,11 @@ internal const val EXTENSION_CLASS_DESCRIPTOR =
fun spoofVideoStreamsPatch(
block: BytecodePatchBuilder.() -> Unit = {},
applyMediaFetchHotConfigChanges: BytecodePatchBuilder.() -> Boolean = { false },
executeBlock: BytecodePatchContext.() -> Unit = {},
) = bytecodePatch(
name = "Spoof video streams",
description = "Spoofs the client video streams to fix playback.",
description = "Adds options to spoof the client video streams to fix playback.",
) {
block()
@@ -238,6 +239,17 @@ fun spoofVideoStreamsPatch(
// endregion
// region turn off stream config replacement feature flag.
if (applyMediaFetchHotConfigChanges()) {
mediaFetchHotConfigFingerprint.method.insertFeatureFlagBooleanOverride(
MEDIA_FETCH_HOT_CONFIG_FEATURE_FLAG,
"$EXTENSION_CLASS_DESCRIPTOR->useMediaFetchHotConfigReplacement(Z)Z"
)
}
// endregion
executeBlock()
}
}

View File

@@ -2,4 +2,4 @@ package app.revanced.patches.tiktok.misc.extension
import app.revanced.patches.shared.misc.extension.sharedExtensionPatch
val sharedExtensionPatch = sharedExtensionPatch("tiktok", initHook)
val sharedExtensionPatch = sharedExtensionPatch("tiktok", initHook, jatoInitHook, storeRegionInitHook)

View File

@@ -3,12 +3,35 @@ package app.revanced.patches.tiktok.misc.extension
import app.revanced.patches.shared.misc.extension.extensionHook
import com.android.tools.smali.dexlib2.AccessFlags
internal val initHook = extensionHook(
insertIndexResolver = { 1 }, // Insert after call to super class.
) {
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
internal val initHook = extensionHook {
custom { method, classDef ->
classDef.endsWith("/AwemeHostApplication;") &&
method.name == "<init>"
classDef.type == "Lcom/ss/android/ugc/aweme/main/MainActivity;" &&
method.name == "onCreate"
}
}
/**
* In some cases the extension code can be called before
* the app main activity onCreate is called.
*
* This class is called from startup code titled "BPEA RunnableGuardLancet".
*/
internal val jatoInitHook = extensionHook(
contextRegisterResolver = { "p1" }
) {
parameters("Landroid/content/Context;")
custom { method, classDef ->
classDef.type == "Lcom/ss/android/ugc/aweme/legoImp/task/JatoInitTask;" &&
method.name == "run"
}
}
internal val storeRegionInitHook = extensionHook(
contextRegisterResolver = { "p1" }
) {
parameters("Landroid/content/Context;")
custom { method, classDef ->
classDef.type == "Lcom/ss/android/ugc/aweme/legoImp/task/StoreRegionInitTask;" &&
method.name == "run"
}
}

View File

@@ -15,8 +15,8 @@ import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction35c
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
val enableSeekbarTappingPatch = bytecodePatch(
name = "Seekbar tapping",
description = "Adds an option to enable tap-to-seek on the seekbar of the video player.",
name = "Enable tap to seek",
description = "Adds an option to enable tap to seek on the seekbar of the video player.",
) {
dependsOn(
sharedExtensionPatch,

View File

@@ -39,6 +39,7 @@ val hideButtonsPatch = resourcePatch(
PreferenceScreenPreference(
"revanced_hide_buttons_screen",
preferences = setOf(
SwitchPreference("revanced_disable_like_subscribe_glow"),
SwitchPreference("revanced_hide_like_dislike_button"),
SwitchPreference("revanced_hide_share_button"),
SwitchPreference("revanced_hide_report_button"),

View File

@@ -58,6 +58,7 @@ val navigationButtonsPatch = bytecodePatch(
SwitchPreference("revanced_hide_shorts_button"),
SwitchPreference("revanced_hide_create_button"),
SwitchPreference("revanced_hide_subscriptions_button"),
SwitchPreference("revanced_hide_notifications_button"),
SwitchPreference("revanced_switch_create_with_notifications_button"),
SwitchPreference("revanced_hide_navigation_button_labels"),
)

View File

@@ -43,7 +43,7 @@ private const val EXTENSION_CLASS_DESCRIPTOR =
val hidePlayerOverlayButtonsPatch = bytecodePatch(
name = "Hide player overlay buttons",
description = "Adds options to hide the player cast, autoplay, caption button and next/ previous buttons.",
description = "Adds options to hide the player Cast, Autoplay, Captions, and Previous & Next buttons.",
) {
dependsOn(
sharedExtensionPatch,

View File

@@ -6,7 +6,9 @@ import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.all.misc.resources.addResources
import app.revanced.patches.all.misc.resources.addResourcesPatch
import app.revanced.patches.shared.misc.settings.preference.ListPreference
import app.revanced.patches.youtube.layout.buttons.navigation.navigationButtonsPatch
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.navigation.hookNavigationButtonCreated
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
import app.revanced.patches.youtube.misc.settings.settingsPatch
import app.revanced.util.getReference
@@ -15,7 +17,7 @@ import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
import com.android.tools.smali.dexlib2.iface.reference.FieldReference
internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/ChangeFormFactorPatch;"
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/ChangeFormFactorPatch;"
@Suppress("unused")
val changeFormFactorPatch = bytecodePatch(
@@ -26,6 +28,7 @@ val changeFormFactorPatch = bytecodePatch(
sharedExtensionPatch,
settingsPatch,
addResourcesPatch,
navigationButtonsPatch
)
compatibleWith(
@@ -50,6 +53,8 @@ val changeFormFactorPatch = bytecodePatch(
)
)
hookNavigationButtonCreated(EXTENSION_CLASS_DESCRIPTOR)
createPlayerRequestBodyWithModelFingerprint.method.apply {
val formFactorEnumClass = formFactorEnumConstructorFingerprint.originalClassDef.type

View File

@@ -44,9 +44,12 @@ private val hideEndscreenCardsResourcePatch = resourcePatch {
}
}
private const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/youtube/patches/HideEndscreenCardsPatch;"
@Suppress("unused")
val hideEndscreenCardsPatch = bytecodePatch(
name = "Hide endscreen cards",
name = "Hide end screen cards",
description = "Adds an option to hide suggested video cards at the end of videos.",
) {
dependsOn(
@@ -78,9 +81,7 @@ val hideEndscreenCardsPatch = bytecodePatch(
addInstruction(
insertIndex,
"invoke-static { v$viewRegister }, " +
"Lapp/revanced/extension/youtube/patches/HideEndscreenCardsPatch;->" +
"hideEndscreen(Landroid/view/View;)V",
"invoke-static { v$viewRegister }, $EXTENSION_CLASS_DESCRIPTOR->hideEndscreen(Landroid/view/View;)V",
)
}
}

View File

@@ -0,0 +1,38 @@
package app.revanced.patches.youtube.layout.hide.endscreensuggestion
import app.revanced.patcher.fingerprint
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstruction
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
internal val autoNavConstructorFingerprint = fingerprint {
returns("V")
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
strings("main_app_autonav")
}
internal val autoNavStatusFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("Z")
parameters()
}
internal val removeOnLayoutChangeListenerFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("V")
parameters()
opcodes(
Opcode.IPUT,
Opcode.INVOKE_VIRTUAL
)
// This is the only reference present in the entire smali.
custom { method, _ ->
method.indexOfFirstInstruction {
val reference = getReference<MethodReference>()
reference?.name == "removeOnLayoutChangeListener" &&
reference.definingClass.endsWith("/YouTubePlayerOverlaysLayout;")
} >= 0
}
}

View File

@@ -0,0 +1,92 @@
package app.revanced.patches.youtube.layout.hide.endscreensuggestion
import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.util.smali.ExternalLabel
import app.revanced.patches.all.misc.resources.addResources
import app.revanced.patches.all.misc.resources.addResourcesPatch
import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionOrThrow
import app.revanced.util.indexOfFirstInstructionReversedOrThrow
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
private const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/youtube/patches/HideEndScreenSuggestedVideoPatch;"
@Suppress("unused")
val hideEndScreenSuggestedVideoPatch = bytecodePatch(
name = "Hide end screen suggested video",
description = "Adds an option to hide the suggested video at the end of videos.",
) {
dependsOn(
sharedExtensionPatch,
addResourcesPatch,
)
compatibleWith(
"com.google.android.youtube"(
"19.16.39",
"19.25.37",
"19.34.42",
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)
execute {
addResources("youtube", "layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch")
PreferenceScreen.PLAYER.addPreferences(
SwitchPreference("revanced_end_screen_suggested_video"),
)
removeOnLayoutChangeListenerFingerprint.let {
val endScreenMethod = navigate(it.originalMethod).to(it.patternMatch!!.endIndex).stop()
endScreenMethod.apply {
val autoNavStatusMethodName = autoNavStatusFingerprint.match(
autoNavConstructorFingerprint.classDef
).originalMethod.name
val invokeIndex = indexOfFirstInstructionOrThrow {
val reference = getReference<MethodReference>()
reference?.name == autoNavStatusMethodName &&
reference.returnType == "Z" &&
reference.parameterTypes.isEmpty()
}
val iGetObjectIndex = indexOfFirstInstructionReversedOrThrow(invokeIndex, Opcode.IGET_OBJECT)
val invokeReference = getInstruction<ReferenceInstruction>(invokeIndex).reference
val iGetObjectReference = getInstruction<ReferenceInstruction>(iGetObjectIndex).reference
val opcodeName = getInstruction(invokeIndex).opcode.name
addInstructionsWithLabels(
0,
"""
invoke-static {}, $EXTENSION_CLASS_DESCRIPTOR->hideEndScreenSuggestedVideo()Z
move-result v0
if-eqz v0, :show_end_screen_recommendation
iget-object v0, p0, $iGetObjectReference
# This reference checks whether autoplay is turned on.
$opcodeName { v0 }, $invokeReference
move-result v0
# Hide suggested video end screen only when autoplay is turned off.
if-nez v0, :show_end_screen_recommendation
return-void
""",
ExternalLabel("show_end_screen_recommendation", getInstruction(0))
)
}
}
}
}

View File

@@ -158,9 +158,9 @@ val hideLayoutComponentsPatch = bytecodePatch(
SwitchPreference("revanced_hide_comments_by_members_header"),
SwitchPreference("revanced_hide_comments_section"),
SwitchPreference("revanced_hide_comments_create_a_short_button"),
SwitchPreference("revanced_hide_comments_timestamp_and_emoji_buttons"),
SwitchPreference("revanced_hide_comments_preview_comment"),
SwitchPreference("revanced_hide_comments_thanks_button"),
SwitchPreference("revanced_hide_comments_timestamp_and_emoji_buttons"),
),
sorting = PreferenceScreenPreference.Sorting.UNSORTED,
),
@@ -172,7 +172,6 @@ val hideLayoutComponentsPatch = bytecodePatch(
SwitchPreference("revanced_hide_emergency_box"),
SwitchPreference("revanced_hide_info_panels"),
SwitchPreference("revanced_hide_join_membership_button"),
SwitchPreference("revanced_disable_like_subscribe_glow"),
SwitchPreference("revanced_hide_medical_panels"),
SwitchPreference("revanced_hide_quick_actions"),
SwitchPreference("revanced_hide_related_videos"),

View File

@@ -159,7 +159,7 @@ private const val FILTER_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/pat
@Suppress("unused")
val hideShortsComponentsPatch = bytecodePatch(
name = "Hide Shorts components",
description = "Adds options to hide components related to YouTube Shorts.",
description = "Adds options to hide components related to Shorts.",
) {
dependsOn(
sharedExtensionPatch,

View File

@@ -1,79 +1,9 @@
package app.revanced.patches.youtube.layout.hide.suggestedvideoendscreen
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.resourcePatch
import app.revanced.patches.all.misc.resources.addResources
import app.revanced.patches.all.misc.resources.addResourcesPatch
import app.revanced.patches.shared.misc.mapping.get
import app.revanced.patches.shared.misc.mapping.resourceMappingPatch
import app.revanced.patches.shared.misc.mapping.resourceMappings
import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
import app.revanced.patches.youtube.misc.settings.settingsPatch
import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
import app.revanced.patches.youtube.layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch
internal var sizeAdjustableLiteAutoNavOverlay = -1L
private set
internal val disableSuggestedVideoEndScreenResourcePatch = resourcePatch {
dependsOn(
settingsPatch,
resourceMappingPatch,
addResourcesPatch,
)
execute {
addResources("youtube", "layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch")
PreferenceScreen.PLAYER.addPreferences(
SwitchPreference("revanced_disable_suggested_video_end_screen"),
)
sizeAdjustableLiteAutoNavOverlay = resourceMappings[
"layout",
"size_adjustable_lite_autonav_overlay",
]
}
}
private const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/youtube/patches/DisableSuggestedVideoEndScreenPatch;"
@Suppress("unused")
val disableSuggestedVideoEndScreenPatch = bytecodePatch(
name = "Disable suggested video end screen",
description = "Adds an option to disable the suggested video end screen at the end of videos.",
) {
dependsOn(
sharedExtensionPatch,
disableSuggestedVideoEndScreenResourcePatch,
)
compatibleWith(
"com.google.android.youtube"(
"19.16.39",
"19.25.37",
"19.34.42",
"19.43.41",
"19.45.38",
"19.46.42",
"19.47.53",
),
)
execute {
createEndScreenViewFingerprint.method.apply {
val addOnClickEventListenerIndex = createEndScreenViewFingerprint.patternMatch!!.endIndex - 1
val viewRegister = getInstruction<FiveRegisterInstruction>(addOnClickEventListenerIndex).registerC
addInstruction(
addOnClickEventListenerIndex + 1,
"invoke-static {v$viewRegister}, " +
"$EXTENSION_CLASS_DESCRIPTOR->closeEndScreen(Landroid/widget/ImageView;)V",
)
}
}
}
@Deprecated("Use 'Hide suggested video end screen' instead.")
val disableSuggestedVideoEndScreenPatch = bytecodePatch {
dependsOn(hideEndScreenSuggestedVideoPatch)
}

View File

@@ -1,18 +0,0 @@
package app.revanced.patches.youtube.layout.hide.suggestedvideoendscreen
import app.revanced.patcher.fingerprint
import app.revanced.util.literal
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val createEndScreenViewFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("Landroid/view/View;")
parameters("Landroid/content/Context;")
opcodes(
Opcode.INVOKE_DIRECT,
Opcode.INVOKE_VIRTUAL,
Opcode.CONST,
)
literal { sizeAdjustableLiteAutoNavOverlay }
}

View File

@@ -134,7 +134,7 @@ private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/
@Suppress("unused")
val miniplayerPatch = bytecodePatch(
name = "Miniplayer",
description = "Adds options to change the in app minimized player."
description = "Adds options to change the in-app minimized player."
) {
dependsOn(
sharedExtensionPatch,

View File

@@ -82,9 +82,9 @@ private val sponsorBlockResourcePatch = resourcePatch {
private const val EXTENSION_SEGMENT_PLAYBACK_CONTROLLER_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/youtube/sponsorblock/SegmentPlaybackController;"
private const val EXTENSION_CREATE_SEGMENT_BUTTON_CONTROLLER_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/youtube/sponsorblock/ui/CreateSegmentButtonController;"
"Lapp/revanced/extension/youtube/sponsorblock/ui/CreateSegmentButton;"
private const val EXTENSION_VOTING_BUTTON_CONTROLLER_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/youtube/sponsorblock/ui/VotingButtonController;"
"Lapp/revanced/extension/youtube/sponsorblock/ui/VotingButton;"
private const val EXTENSION_SPONSORBLOCK_VIEW_CONTROLLER_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/youtube/sponsorblock/ui/SponsorBlockViewController;"

View File

@@ -1,8 +1,29 @@
package app.revanced.patches.youtube.layout.spoofappversion
import app.revanced.patcher.fingerprint
import app.revanced.util.containsLiteralInstruction
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstruction
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.Method
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
internal val toolBarButtonFingerprint = fingerprint {
returns("V")
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
parameters("Landroid/view/MenuItem;")
custom { method, _ ->
method.containsLiteralInstruction(menuItemView) &&
indexOfGetDrawableInstruction(method) >= 0
}
}
internal fun indexOfGetDrawableInstruction(method: Method) = method.indexOfFirstInstruction {
val reference = getReference<MethodReference>()
reference?.definingClass == "Landroid/content/res/Resources;" &&
reference.name == "getDrawable"
}
internal val spoofAppVersionFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)

View File

@@ -1,10 +1,16 @@
package app.revanced.patches.youtube.layout.spoofappversion
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.patch.resourcePatch
import app.revanced.patcher.util.smali.ExternalLabel
import app.revanced.patches.all.misc.resources.addResources
import app.revanced.patches.all.misc.resources.addResourcesPatch
import app.revanced.patches.shared.misc.mapping.get
import app.revanced.patches.shared.misc.mapping.resourceMappingPatch
import app.revanced.patches.shared.misc.mapping.resourceMappings
import app.revanced.patches.shared.misc.settings.preference.ListPreference
import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
@@ -12,7 +18,25 @@ import app.revanced.patches.youtube.misc.playservice.is_19_17_or_greater
import app.revanced.patches.youtube.misc.playservice.versionCheckPatch
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
import app.revanced.patches.youtube.misc.settings.settingsPatch
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionOrThrow
import app.revanced.util.indexOfFirstInstructionReversedOrThrow
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
internal var menuItemView = -1L
private set
internal val spoofAppVersionResourcePatch = resourcePatch {
dependsOn(
resourceMappingPatch
)
execute {
menuItemView = resourceMappings["id", "menu_item_view"]
}
}
private const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/youtube/patches/spoof/SpoofAppVersionPatch;"
@@ -24,6 +48,7 @@ val spoofAppVersionPatch = bytecodePatch(
"Patching 19.16.39 includes additional older spoofing targets.",
) {
dependsOn(
spoofAppVersionResourcePatch,
sharedExtensionPatch,
settingsPatch,
addResourcesPatch,
@@ -62,6 +87,32 @@ val spoofAppVersionPatch = bytecodePatch(
}
)
/**
* If a user really wants to spoof to very old versions with the latest app target
* they can modify the import/export spoof version. But when spoofing the 19.20.xx
* or earlier the Library tab can crash due to missing image resources trying to load.
* As a temporary workaround, do not set an image in the toolbar when the enum name is UNKNOWN.
*/
toolBarButtonFingerprint.method.apply {
val getDrawableIndex = indexOfGetDrawableInstruction(this)
val enumOrdinalIndex = indexOfFirstInstructionReversedOrThrow(getDrawableIndex) {
opcode == Opcode.INVOKE_INTERFACE &&
getReference<MethodReference>()?.returnType == "I"
}
val insertIndex = enumOrdinalIndex + 2
val insertRegister = getInstruction<OneRegisterInstruction>(insertIndex - 1).registerA
val jumpIndex = indexOfFirstInstructionOrThrow(insertIndex) {
opcode == Opcode.INVOKE_VIRTUAL &&
getReference<MethodReference>()?.name == "setImageDrawable"
} + 1
addInstructionsWithLabels(
insertIndex,
"if-eqz v$insertRegister, :ignore",
ExternalLabel("ignore", getInstruction(jumpIndex))
)
}
val insertIndex = spoofAppVersionFingerprint.patternMatch!!.startIndex + 1
val buildOverrideNameRegister =
spoofAppVersionFingerprint.method.getInstruction<OneRegisterInstruction>(insertIndex - 1).registerA
@@ -71,7 +122,7 @@ val spoofAppVersionPatch = bytecodePatch(
"""
invoke-static {v$buildOverrideNameRegister}, $EXTENSION_CLASS_DESCRIPTOR->getYouTubeVersionOverride(Ljava/lang/String;)Ljava/lang/String;
move-result-object v$buildOverrideNameRegister
""",
"""
)
}
}

View File

@@ -1,6 +1,7 @@
package app.revanced.patches.youtube.misc.debugging
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.all.misc.resources.addResources
import app.revanced.patches.all.misc.resources.addResourcesPatch
@@ -11,9 +12,11 @@ import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.playservice.versionCheckPatch
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
import app.revanced.patches.youtube.misc.settings.settingsPatch
import app.revanced.util.findInstructionIndicesReversedOrThrow
import app.revanced.util.indexOfFirstInstructionOrThrow
import app.revanced.util.indexOfFirstInstructionReversedOrThrow
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
private const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/youtube/patches/EnableDebuggingPatch;"
@@ -61,19 +64,17 @@ val enableDebuggingPatch = bytecodePatch(
experimentalBooleanFeatureFlagFingerprint.match(
experimentalFeatureFlagParentFingerprint.originalClassDef
).method.apply {
val insertIndex = indexOfFirstInstructionOrThrow(Opcode.MOVE_RESULT)
findInstructionIndicesReversedOrThrow(Opcode.RETURN).forEach { index ->
val register = getInstruction<OneRegisterInstruction>(index).registerA
// It appears that all usage of this method has a default of 'false',
// so there's no need to pass in the default.
addInstructions(
insertIndex,
"""
move-result v0
invoke-static { v0, p1, p2 }, $EXTENSION_CLASS_DESCRIPTOR->isBooleanFeatureFlagEnabled(ZJ)Z
move-result v0
return v0
"""
)
addInstructions(
index,
"""
invoke-static { v$register, p1 }, $EXTENSION_CLASS_DESCRIPTOR->isBooleanFeatureFlagEnabled(ZLjava/lang/Long;)Z
move-result v$register
"""
)
}
}
experimentalDoubleFeatureFlagFingerprint.match(
@@ -92,7 +93,6 @@ val enableDebuggingPatch = bytecodePatch(
)
}
experimentalLongFeatureFlagFingerprint.match(
experimentalFeatureFlagParentFingerprint.originalClassDef
).method.apply {
@@ -108,21 +108,22 @@ val enableDebuggingPatch = bytecodePatch(
"""
)
experimentalStringFeatureFlagFingerprint.match(
experimentalFeatureFlagParentFingerprint.originalClassDef
).method.apply {
val insertIndex = indexOfFirstInstructionReversedOrThrow(Opcode.MOVE_RESULT_OBJECT)
}
addInstructions(
insertIndex,
"""
move-result-object v0
invoke-static { v0, p1, p2, p3 }, $EXTENSION_CLASS_DESCRIPTOR->isStringFeatureFlagEnabled(Ljava/lang/String;JLjava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
"""
)
}
experimentalStringFeatureFlagFingerprint.match(
experimentalFeatureFlagParentFingerprint.originalClassDef
).method.apply {
val insertIndex = indexOfFirstInstructionReversedOrThrow(Opcode.MOVE_RESULT_OBJECT)
addInstructions(
insertIndex,
"""
move-result-object v0
invoke-static { v0, p1, p2, p3 }, $EXTENSION_CLASS_DESCRIPTOR->isStringFeatureFlagEnabled(Ljava/lang/String;JLjava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
"""
)
}
// There exists other experimental accessor methods for byte[]

View File

@@ -11,9 +11,9 @@ internal val experimentalFeatureFlagParentFingerprint = fingerprint {
}
internal val experimentalBooleanFeatureFlagFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
returns("Z")
parameters("J", "Z")
parameters("L", "J", "Z")
}
internal val experimentalDoubleFeatureFlagFingerprint = fingerprint {
@@ -33,4 +33,3 @@ internal val experimentalStringFeatureFlagFingerprint = fingerprint {
returns("Ljava/lang/String;")
parameters("J", "Ljava/lang/String;")
}

View File

@@ -12,7 +12,7 @@ import com.android.tools.smali.dexlib2.iface.reference.StringReference
val openLinksExternallyPatch = bytecodePatch(
name = "Open links externally",
description = "Adds an option to always open links in your browser instead of in the in-app-browser.",
description = "Adds an option to always open links in your browser instead of the in-app browser.",
) {
dependsOn(
transformInstructionsPatch(

View File

@@ -16,6 +16,23 @@ internal val actionBarSearchResultsFingerprint = fingerprint {
literal { actionBarSearchResultsViewMicId }
}
internal val toolbarLayoutFingerprint = fingerprint {
accessFlags(AccessFlags.PROTECTED, AccessFlags.CONSTRUCTOR)
literal { toolbarContainerId }
}
/**
* Matches to https://android.googlesource.com/platform/frameworks/support/+/9eee6ba/v7/appcompat/src/android/support/v7/widget/Toolbar.java#963
*/
internal val appCompatToolbarBackButtonFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("Landroid/graphics/drawable/Drawable;")
parameters()
custom { methodDef, classDef ->
classDef.type == "Landroid/support/v7/widget/Toolbar;"
}
}
/**
* Matches to the class found in [pivotBarConstructorFingerprint].
*/

View File

@@ -8,6 +8,7 @@ import app.revanced.patcher.patch.PatchException
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.patch.resourcePatch
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod.Companion.toMutable
import app.revanced.patches.shared.misc.mapping.get
import app.revanced.patches.shared.misc.mapping.resourceMappingPatch
import app.revanced.patches.shared.misc.mapping.resourceMappings
@@ -18,12 +19,16 @@ import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionOrThrow
import app.revanced.util.indexOfFirstInstructionReversedOrThrow
import app.revanced.util.indexOfFirstLiteralInstructionOrThrow
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.builder.MutableMethodImplementation
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.reference.MethodReference
import com.android.tools.smali.dexlib2.iface.reference.TypeReference
import com.android.tools.smali.dexlib2.immutable.ImmutableMethod
import com.android.tools.smali.dexlib2.util.MethodUtil
internal var imageOnlyTabResourceId = -1L
@@ -32,6 +37,8 @@ internal var actionBarSearchResultsViewMicId = -1L
private set
internal var ytFillBellId = -1L
private set
internal var toolbarContainerId = -1L
private set
private val navigationBarHookResourcePatch = resourcePatch {
dependsOn(resourceMappingPatch)
@@ -40,6 +47,7 @@ private val navigationBarHookResourcePatch = resourcePatch {
imageOnlyTabResourceId = resourceMappings["layout", "image_only_tab"]
actionBarSearchResultsViewMicId = resourceMappings["layout", "action_bar_search_results_view_mic"]
ytFillBellId = resourceMappings["drawable", "yt_fill_bell_black_24"]
toolbarContainerId = resourceMappings["id", "toolbar_container"]
}
}
@@ -47,6 +55,8 @@ internal const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/youtube/shared/NavigationBar;"
internal const val EXTENSION_NAVIGATION_BUTTON_DESCRIPTOR =
"Lapp/revanced/extension/youtube/shared/NavigationBar\$NavigationButton;"
private const val EXTENSION_TOOLBAR_INTERFACE =
"Lapp/revanced/extension/youtube/shared/NavigationBar${'$'}AppCompatToolbarPatchInterface;"
lateinit var hookNavigationButtonCreated: (String) -> Unit
@@ -143,11 +153,58 @@ val navigationBarHookPatch = bytecodePatch(description = "Hooks the active navig
)
}
// Hook the back button visibility.
toolbarLayoutFingerprint.method.apply {
val index = indexOfFirstInstructionOrThrow {
opcode == Opcode.CHECK_CAST && getReference<TypeReference>()?.type ==
"Lcom/google/android/apps/youtube/app/ui/actionbar/MainCollapsingToolbarLayout;"
}
val register = getInstruction<OneRegisterInstruction>(index).registerA
addInstruction(
index + 1,
"invoke-static { v$register }, ${EXTENSION_CLASS_DESCRIPTOR}->setToolbar(Landroid/widget/FrameLayout;)V"
)
}
// Add interface for extensions code to call obfuscated methods.
appCompatToolbarBackButtonFingerprint.let {
it.classDef.apply {
interfaces.add(EXTENSION_TOOLBAR_INTERFACE)
val definingClass = type
val obfuscatedMethodName = it.originalMethod.name
val returnType = "Landroid/graphics/drawable/Drawable;"
methods.add(
ImmutableMethod(
definingClass,
"patch_getNavigationIcon",
listOf(),
returnType,
AccessFlags.PUBLIC.value or AccessFlags.FINAL.value,
null,
null,
MutableMethodImplementation(2),
).toMutable().apply {
addInstructions(
0,
"""
invoke-virtual { p0 }, $definingClass->$obfuscatedMethodName()$returnType
move-result-object v0
return-object v0
"""
)
}
)
}
}
hookNavigationButtonCreated = { extensionClassDescriptor ->
navigationBarHookCallbackFingerprint.method.addInstruction(
0,
"invoke-static { p0, p1 }, " +
"$extensionClassDescriptor->navigationTabCreated" +
"invoke-static { p0, p1 }, $extensionClassDescriptor->navigationTabCreated" +
"(${EXTENSION_NAVIGATION_BUTTON_DESCRIPTOR}Landroid/view/View;)V",
)
}

View File

@@ -77,12 +77,9 @@ val playerControlsResourcePatch = resourcePatch {
).item(0)
val bottomTargetDocumentChildNodes = bottomTargetDocument.childNodes
var bottomInsertBeforeNode: Node = bottomTargetDocumentChildNodes.findElementByAttributeValue(
var bottomInsertBeforeNode: Node = bottomTargetDocumentChildNodes.findElementByAttributeValueOrThrow(
"android:inflatedId",
bottomLastLeftOf,
) ?: bottomTargetDocumentChildNodes.findElementByAttributeValueOrThrow(
"android:id", // Older targets use non-inflated id.
bottomLastLeftOf,
)
addTopControl = { resourceDirectoryName ->
@@ -123,7 +120,7 @@ val playerControlsResourcePatch = resourcePatch {
).item(0).childNodes
// Copy the patch layout xml into the target layout file.
for (index in 1 until sourceElements.length) {
for (index in sourceElements.length - 1 downTo 1) {
val element = sourceElements.item(index).cloneNode(true)
// If the element has no attributes there's no point adding it to the destination.
@@ -189,7 +186,7 @@ fun initializeBottomControl(descriptor: String) {
fun injectVisibilityCheckCall(descriptor: String) {
visibilityMethod.addInstruction(
visibilityInsertIndex++,
"invoke-static { p1 , p2 }, $descriptor->changeVisibility(ZZ)V",
"invoke-static { p1 , p2 }, $descriptor->setVisibility(ZZ)V",
)
if (!visibilityImmediateCallbacksExistModified) {
@@ -199,7 +196,7 @@ fun injectVisibilityCheckCall(descriptor: String) {
visibilityImmediateMethod.addInstruction(
visibilityImmediateInsertIndex++,
"invoke-static { p0 }, $descriptor->changeVisibilityImmediate(Z)V",
"invoke-static { p0 }, $descriptor->setVisibilityImmediate(Z)V",
)
}

View File

@@ -20,7 +20,7 @@ private const val EXTENSION_CLASS_DESCRIPTOR =
val removeTrackingQueryParameterPatch = bytecodePatch(
name = "Remove tracking query parameter",
description = "Adds an option to remove the tracking info from links you share.",
description = "Adds an option to remove the tracking parameter from links you share.",
) {
dependsOn(
sharedExtensionPatch,

View File

@@ -6,6 +6,8 @@ import app.revanced.patches.shared.misc.settings.preference.NonInteractivePrefer
import app.revanced.patches.shared.misc.settings.preference.PreferenceScreenPreference
import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
import app.revanced.patches.shared.misc.spoof.spoofVideoStreamsPatch
import app.revanced.patches.youtube.misc.playservice.is_19_34_or_greater
import app.revanced.patches.youtube.misc.playservice.versionCheckPatch
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
import app.revanced.patches.youtube.misc.settings.settingsPatch
@@ -25,7 +27,10 @@ val spoofVideoStreamsPatch = spoofVideoStreamsPatch({
dependsOn(
userAgentClientSpoofPatch,
settingsPatch,
versionCheckPatch
)
}, {
is_19_34_or_greater
}, {
addResources("youtube", "misc.fix.playback.spoofVideoStreamsPatch")

View File

@@ -408,10 +408,13 @@ internal fun MutableMethod.insertFeatureFlagBooleanOverride(literal: Long, exten
val index = indexOfFirstInstructionOrThrow(literalIndex, Opcode.MOVE_RESULT)
val register = getInstruction<OneRegisterInstruction>(index).registerA
val operation = if (register < 16) "invoke-static { v$register }"
else "invoke-static/range { v$register .. v$register }"
addInstructions(
index + 1,
"""
invoke-static { v$register }, $extensionsMethod
$operation, $extensionsMethod
move-result v$register
"""
)
@@ -458,7 +461,7 @@ fun MutableMethod.returnEarly(bool: Boolean = false) {
return v0
"""
else -> throw Exception("This case should never happen.")
else -> throw Exception("Return type is not supported: $this")
}
addInstructions(0, stringInstructions)

View File

@@ -130,7 +130,7 @@ Second \"item\" text"</string>
<!-- 'remix' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'share' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
<patch id="misc.zoomhaptics.zoomHapticsPatch">
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

View File

@@ -130,7 +130,7 @@ Second \"item\" text"</string>
<!-- 'remix' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'share' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
<patch id="misc.zoomhaptics.zoomHapticsPatch">
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

View File

@@ -168,9 +168,6 @@ Second \"item\" text"</string>
لن يتم إعلامك بأي أخطاء غير متوقعة."</string>
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<string name="revanced_disable_like_subscribe_glow_title">إيقاف تفعيل توهج الإعجاب والاشتراك</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">لن يتوهَّج زرّي أعجبني واشتراك عند ذكرهما</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">سيتوهَّج زرّي أعجبني واشتراك عند ذكرهما</string>
<string name="revanced_hide_album_cards_title">إخفاء بطاقات الألبوم</string>
<string name="revanced_hide_album_cards_summary_on">تم إخفاء بطاقات الألبوم</string>
<string name="revanced_hide_album_cards_summary_off">يتم عرض بطاقات الألبوم</string>
@@ -304,13 +301,13 @@ Second \"item\" text"</string>
<string name="revanced_hide_description_components_screen_title">وصف الفيديو</string>
<string name="revanced_hide_description_components_screen_summary">إخفاء أو عرض مكونات وصف الفيديو</string>
<string name="revanced_hide_filter_bar_screen_title">شريط التصفية</string>
<string name="revanced_hide_filter_bar_screen_summary">إخفاء شريط التصفية أو عرضه في الموجز والبحث الفيديوهات ذات الصلة</string>
<string name="revanced_hide_filter_bar_screen_summary">إخفاء أو إظهار شريط الفلتر في الخلاصة ونتائج البحث ومقاطع الفيديو ذات الصلة</string>
<string name="revanced_hide_filter_bar_feed_in_feed_title">إخفاء في الموجز</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_on">مخفي في الموجز</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_off">يعرض في الموجز</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">إخفاء في البحث</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">مخفي في البحث</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">يعرض في البحث</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">إخفاء في نتائج البحث</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">مخفي في نتائج البحث</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">يظهر في نتائج البحث</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_title">إخفاء في الفيديوهات ذات الصلة</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_on">مخفي في الفيديوهات ذات الصلة</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_off">يعرض في الفيديوهات ذات الصلة</string>
@@ -407,7 +404,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_self_sponsor_ads_title">إخفاء بطاقات الرعاية الذاتية</string>
<string name="revanced_hide_self_sponsor_ads_summary_on">تم إخفاء بطاقات الرعاية الذاتية</string>
<string name="revanced_hide_self_sponsor_ads_summary_off">يتم عرض بطاقات الرعاية الذاتية</string>
<string name="revanced_hide_products_banner_title">إخفاء لافتة لعرض المنتجات</string>
<string name="revanced_hide_products_banner_title">إخفاء لافتة \"عرض المنتجات\"</string>
<string name="revanced_hide_products_banner_summary_on">تم إخفاء البانر</string>
<string name="revanced_hide_products_banner_summary_off">يتم عرض البانر</string>
<string name="revanced_hide_end_screen_store_banner_title">إخفاء لافتة شاشة المتجر النهائية</string>
@@ -446,10 +443,10 @@ Second \"item\" text"</string>
<string name="revanced_share_copy_url_success">تم نسخ URL إلى الحافظة</string>
<string name="revanced_share_copy_url_timestamp_success">تم نسخ عنوان URL مع الطابع الزمني</string>
<string name="revanced_copy_video_url_title">عرض زر نسخ عنوان URL للفيديو</string>
<string name="revanced_copy_video_url_summary_on">يتم عرض الزر. انقر لنسخ رابط الفيديو. انقر مع الاستمرار لنسخ URL الفيديو مع الطابع الزمني</string>
<string name="revanced_copy_video_url_summary_on">يتم عرض الزر. انقر لنسخ عنوان URL للفيديو. انقر مع الاستمرار للنسخ مع الطابع الزمني</string>
<string name="revanced_copy_video_url_summary_off">لا يتم عرض الزر</string>
<string name="revanced_copy_video_url_timestamp_title">عرض زر نسخ URL مع الطابع الزمني</string>
<string name="revanced_copy_video_url_timestamp_summary_on">يتم عرض الزر. انقر لنسخ عنوان URL للفيديو مع الطابع الزمني. انقر مع الاستمرار لنسخ الفيديو بدون الطابع الزمني</string>
<string name="revanced_copy_video_url_timestamp_summary_on">يتم عرض الزر. انقر لنسخ عنوان URL للفيديو مع الطابع الزمني. انقر مع الاستمرار للنسخ بدون الطابع الزمني</string>
<string name="revanced_copy_video_url_timestamp_summary_off">لا يتم عرض الزر</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
@@ -484,11 +481,15 @@ Second \"item\" text"</string>
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
<string name="revanced_swipe_brightness_title">التحكم بالسطوع عن طريق ايماءة التمرير</string>
<string name="revanced_swipe_brightness_summary_on">تم تمكين التحكم بمستوى السطوع عن طريق الإيماءة</string>
<string name="revanced_swipe_brightness_summary_off">تم تعطيل التحكم بمستوى السطوع عن طريق الإيماءة</string>
<string name="revanced_swipe_brightness_summary_on">"تم تمكين التمرير السريع لضبط السطوع في وضع ملء الشاشة
اضبط السطوع عن طريق التمرير عموديًا على الجانب الأيسر من الشاشة"</string>
<string name="revanced_swipe_brightness_summary_off">تم تعطيل التمرير السريع لضبط السطوع في وضع ملء الشاشة</string>
<string name="revanced_swipe_volume_title">تمكين التحكم بالصوت عن طريق إيماءة التمرير</string>
<string name="revanced_swipe_volume_summary_on">تم تمكين التحكم بمستوى الصوت عن طريق الإيماءة</string>
<string name="revanced_swipe_volume_summary_off">تم تعطيل التحكم بمستوى الصوت عن طريق الإيماءة</string>
<string name="revanced_swipe_volume_summary_on">"تم تمكين التمرير السريع لضبط مستوى الصوت في وضع ملء الشاشة
اضبط مستوى الصوت عن طريق التمرير عموديًا على الجانب الأيمن من الشاشة"</string>
<string name="revanced_swipe_volume_summary_off">تم تعطيل التمرير السريع لضبط مستوى الصوت في وضع ملء الشاشة</string>
<string name="revanced_swipe_press_to_engage_title">تمكين إيماءة الضغط للتمرير</string>
<string name="revanced_swipe_press_to_engage_summary_on">يتم تنشيط عناصر التحكم عن طريق إيماءة التمرير فقط بضغطة طويلة</string>
<string name="revanced_swipe_press_to_engage_summary_off">تنشيط عناصر التحكم عن طريق إيماءة التمرير عند الضغط مباشرة</string>
@@ -501,16 +502,19 @@ Second \"item\" text"</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_title">تمكين إيماءة السطوع التلقائي</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_on">التمرير لأسفل إلى أدنى قيمة للسطوع يمكّن السطوع التلقائي</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_off">لا يؤدي التمرير لأسفل إلى أدنى قيمة إلى تمكين السطوع التلقائي</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_overlay_text">تلقائي</string>
<string name="revanced_swipe_overlay_timeout_title">مهلة واجهة التمرير</string>
<string name="revanced_swipe_overlay_timeout_summary">مقدار الوقت الذي تظهر فيه واجهة التمرير بعد التغيير بجزء الثانية</string>
<string name="revanced_swipe_text_overlay_size_title">حجم نص واجهة التمرير</string>
<string name="revanced_swipe_text_overlay_size_summary">حجم النص على واجهة التمرير</string>
<string name="revanced_swipe_overlay_background_opacity_title">تعتيم خلفية واجهة التمرير السريع</string>
<string name="revanced_swipe_overlay_background_opacity_summary">قيمة التعتيم بين 0-100</string>
<string name="revanced_swipe_overlay_background_opacity_invalid_toast">يجب أن يكون تعتيم التمرير السريع بين 0-100</string>
<string name="revanced_swipe_threshold_title">مقدار حد التمرير</string>
<string name="revanced_swipe_threshold_summary">الحد الأدنى من التمرير قبل اكتشاف الإيماءة</string>
<string name="revanced_swipe_show_circular_overlay_title">عرض الواجهة الدائرية</string>
<string name="revanced_swipe_show_circular_overlay_summary_on">يتم عرض التراكب الدائري</string>
<string name="revanced_swipe_show_circular_overlay_summary_off">يتم عرض التراكب الأفقي</string>
<string name="revanced_swipe_overlay_minimal_style_title">تمكين النمط الأدنى</string>
<string name="revanced_swipe_overlay_minimal_style_summary_on">تم تمكين النمط الواجهة الأدنى</string>
<string name="revanced_swipe_overlay_minimal_style_summary_off">تم تعطيل نمط الواجهة الأدنى</string>
<string name="revanced_swipe_change_video_title">تمكين إيماءة التمرير لتغيير الفيديو</string>
<string name="revanced_swipe_change_video_summary_on">سيؤدي التمرير في وضع ملء الشاشة إلى التغيير للفيديو التالي/السابق</string>
<string name="revanced_swipe_change_video_summary_off">لن يؤدي التمرير في وضع ملء الشاشة إلى التغيير للفيديو التالي/السابق</string>
@@ -523,6 +527,9 @@ Second \"item\" text"</string>
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">أزرار الإجراء</string>
<string name="revanced_hide_buttons_screen_summary">إخفاء أو عرض الأزرار تحت الفيديوهات</string>
<string name="revanced_disable_like_subscribe_glow_title">إيقاف تفعيل توهج الإعجاب والاشتراك</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">لن يتوهَّج زرّي أعجبني واشتراك عند ذكرهما</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">سيتوهَّج زرّي أعجبني واشتراك عند ذكرهما</string>
<string name="revanced_hide_like_dislike_button_title">إخفاء أعجبني ولم يعجبني</string>
<string name="revanced_hide_like_dislike_button_summary_on">تم إخفاء أزرار أعجبني ولم يعجبني</string>
<string name="revanced_hide_like_dislike_button_summary_off">يتم عرض أزرار أعجبني ولم يعجبني</string>
@@ -575,12 +582,18 @@ Second \"item\" text"</string>
<string name="revanced_hide_subscriptions_button_title">إخفاء الاشتراكات</string>
<string name="revanced_hide_subscriptions_button_summary_on">تم إخفاء زر الاشتراكات</string>
<string name="revanced_hide_subscriptions_button_summary_off">يتم عرض زر الاشتراكات</string>
<string name="revanced_hide_notifications_button_title">إخفاء الإشعارات</string>
<string name="revanced_hide_notifications_button_summary_on">تم إخفاء زر الإشعارات</string>
<string name="revanced_hide_notifications_button_summary_off">يتم عرض زر الإشعارات</string>
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_switch_create_with_notifications_button_title">تبديل الإنشاء مع الإشعارات</string>
<string name="revanced_switch_create_with_notifications_button_summary_on">"تم تبديل زر الإنشاء بـزر الإشعارات
ملاحظة: يؤدي تمكين هذا أيضًا إلى إخفاء إعلانات الفيديو بالقوة"</string>
<string name="revanced_switch_create_with_notifications_button_summary_off">لا يتم تبديل زر الإنشاء بزر الإشعارات</string>
<string name="revanced_switch_create_with_notifications_button_user_dialog_message">"سيؤدي تعطيل هذا الإعداد أيضًا إلى تعطيل حظر إعلانات Shorts.
إذا لم يتم تفعيل تغيير هذا الإعداد، فحاول التبديل إلى وضع التصفُّح المتخفي."</string>
<string name="revanced_hide_navigation_button_labels_title">إخفاء تسميات زر التنقل</string>
<string name="revanced_hide_navigation_button_labels_summary_on">تم إخفاء التسميات</string>
<string name="revanced_hide_navigation_button_labels_summary_off">يتم عرض التسميات</string>
@@ -650,7 +663,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">يتم عرض تذييل قائمة جودة الفيديو</string>
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<string name="revanced_hide_player_previous_next_buttons_title">إخفاء أزرار الفيديو السابق &amp; التالي</string>
<string name="revanced_hide_player_previous_next_buttons_title">إخفاء زري \"السابق\" و \"التالي\"</string>
<string name="revanced_hide_player_previous_next_buttons_summary_on">تم إخفاء الأزرار</string>
<string name="revanced_hide_player_previous_next_buttons_summary_off">يتم عرض الأزرار</string>
<string name="revanced_hide_cast_button_title">إخفاء زر البث</string>
@@ -795,10 +808,13 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_navigation_bar_summary_on">تم إخفاء شريط التنقل</string>
<string name="revanced_hide_shorts_navigation_bar_summary_off">يتم عرض شريط التنقل</string>
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<string name="revanced_disable_suggested_video_end_screen_title">تعطيل شاشة نهاية الفيديو المقترح</string>
<string name="revanced_disable_suggested_video_end_screen_summary_on">الفيديوهات المقترحة سيتم تعطيلها</string>
<string name="revanced_disable_suggested_video_end_screen_summary_off">الفيديوهات المقترحة سيتم عرضها</string>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
<string name="revanced_end_screen_suggested_video_title">إخفاء الفيديو المقترح في شاشة النهاية</string>
<string name="revanced_end_screen_suggested_video_summary_on">"يتم إخفاء الفيديو المقترح في شاشة النهاية عند إيقاف التشغيل التلقائي
يمكن تغيير التشغيل التلقائي في إعدادات YouTube:
الإعدادات ← التشغيل ← تشغيل الفيديو التالي تلقائيًا"</string>
<string name="revanced_end_screen_suggested_video_summary_off">يتم عرض الفيديو المقترح في شاشة النهاية</string>
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
<string name="revanced_hide_timestamp_title">إخفاء الطابع الزمني للفيديو</string>
@@ -1325,8 +1341,8 @@ Second \"item\" text"</string>
</patch>
<patch id="misc.links.openLinksExternallyPatch">
<string name="revanced_external_browser_title">فتح الروابط في المتصفح</string>
<string name="revanced_external_browser_summary_on">فتح الروابط خارجيًا</string>
<string name="revanced_external_browser_summary_off">فتح الروابط في التطبيق</string>
<string name="revanced_external_browser_summary_on">فتح الروابط في متصفح خارجي</string>
<string name="revanced_external_browser_summary_off">فتح الروابط في متصفح داخل التطبيق</string>
</patch>
<patch id="misc.privacy.removeTrackingQueryParameterPatch">
<string name="revanced_remove_tracking_query_parameter_title">إزالة معلمة تتبع الاستعلام</string>
@@ -1339,10 +1355,10 @@ Second \"item\" text"</string>
<string name="revanced_disable_zoom_haptics_summary_off">تم تمكين الاهتزاز</string>
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<string name="revanced_force_original_audio_title">فرض الصوت الأصلي</string>
<string name="revanced_force_original_audio_summary_on">استخدام الصوت الأصلي</string>
<string name="revanced_force_original_audio_summary_on">استخدام لغة الصوت الأصلية</string>
<string name="revanced_force_original_audio_summary_off">استخدام الصوت الافتراضي</string>
<string name="revanced_force_original_audio_not_available">لاستخدام هذه الميزة، قم بتغيير محاكاة بث المحتوى إلى نوع العميل iOS</string>
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
<string name="revanced_force_original_audio_not_available">لاستخدام هذه الميزة، غيّر \"انتحال دفقات الفيديو\" إلى iOS TV</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

View File

@@ -130,7 +130,7 @@ Second \"item\" text"</string>
<!-- 'remix' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'share' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
@@ -208,6 +208,7 @@ Second \"item\" text"</string>
<patch id="misc.zoomhaptics.zoomHapticsPatch">
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

View File

@@ -161,13 +161,13 @@ Davam et düyməsinə toxun və optimallaşdırma dəyişikliklərin qəbul et."
<string name="revanced_debug_stacktrace_summary_on">Sazlama jurnalına yığın izləri daxildir</string>
<string name="revanced_debug_stacktrace_summary_off">Sazlama jurnalına yığın izləri daxil deyil</string>
<string name="revanced_debug_toast_on_error_title">ReVanced xətasında ani bildiriş göstər</string>
<string name="revanced_debug_toast_on_error_summary_on">Xəta baş verərsə ani bildiriş görünür</string>
<string name="revanced_debug_toast_on_error_summary_off">Xəta baş verərsə ani bildiriş görünmür</string>
<string name="revanced_debug_toast_on_error_user_dialog_message">"Xəta ani bildirişlərin qapatmaq, bütün ReVanced xəta bildirişlərin gizlədir.
Gözlənilməz hallardan xəbərdar olmayacaqsınız."</string>
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<string name="revanced_disable_like_subscribe_glow_summary_on">Bəyən və Abunə ol düyməsinə toxunanda parlamayacaq</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Bəyən və Abunə ol düyməsinə toxunanda parlayacaq</string>
<string name="revanced_hide_album_cards_title">Albom kartlarını gizlət</string>
<string name="revanced_hide_album_cards_summary_on">Albom kartları gizlidir</string>
<string name="revanced_hide_album_cards_summary_off">Albom kartları göstərilir</string>
@@ -190,15 +190,22 @@ Gözlənilməz hallardan xəbərdar olmayacaqsınız."</string>
<string name="revanced_hide_horizontal_shelves_summary_off">Hissələr göstərilir</string>
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
<string name="revanced_hide_join_membership_button_title">Qoşul düyməsin gizlət</string>
<string name="revanced_hide_join_membership_button_summary_on">Düymə gizlidir</string>
<string name="revanced_hide_join_membership_button_summary_off">Düymə göstərilir</string>
<!-- 'For you' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_for_you_shelf_title">\"Sizin üçün\" bölməsin gizlət</string>
<string name="revanced_hide_for_you_shelf_summary_on">Kanal səhifəsində bölmə gizlidir</string>
<string name="revanced_hide_for_you_shelf_summary_off">Kanal səhifəsində bölmə görünür</string>
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the subscription feed for future livestreams or unreleased videos. -->
<string name="revanced_hide_notify_me_button_title">\"Mənə bildir\" düyməsini gizlət</string>
<string name="revanced_hide_notify_me_button_summary_on">Düymə gizlidir</string>
<string name="revanced_hide_notify_me_button_summary_off">Düymə göstərilir</string>
<!-- 'People also watched' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_search_result_recommendations_title">\"İnsanlar həmçinin izləyiblər\" etiketin gizlət</string>
<string name="revanced_hide_search_result_recommendations_summary_on">Etiket gizlidir</string>
<string name="revanced_hide_search_result_recommendations_summary_off">Etiket göstərilir</string>
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<string name="revanced_hide_show_more_button_title">\'Daha çox göstər\' düyməsini gizlət</string>
@@ -214,6 +221,8 @@ Gözlənilməz hallardan xəbərdar olmayacaqsınız."</string>
<string name="revanced_hide_chips_shelf_summary_on">Çip bölməsi gizlidir</string>
<string name="revanced_hide_chips_shelf_summary_off">Çip bölməsi göstərilir</string>
<string name="revanced_hide_expandable_chip_title">Videoların aşağısında açılan kartı gizlət</string>
<string name="revanced_hide_expandable_chip_summary_on">Genişləndirilən kart gizlidir</string>
<string name="revanced_hide_expandable_chip_summary_off">Genişləndirilən kart görünür</string>
<string name="revanced_hide_community_posts_title">İcma elanların gizlət</string>
<string name="revanced_hide_community_posts_summary_on">İcma elanları gizlədilib</string>
<string name="revanced_hide_community_posts_summary_off">İcma elanları göstərilir</string>
@@ -229,6 +238,7 @@ Gözlənilməz hallardan xəbərdar olmayacaqsınız."</string>
<string name="revanced_hide_community_guidelines_title">İcma təlimatlarını gizlət</string>
<string name="revanced_hide_community_guidelines_summary_on">İcma təlimatları gizlidir</string>
<string name="revanced_hide_community_guidelines_summary_off">İcma təlimatları göstərilir</string>
<string name="revanced_hide_subscribers_community_guidelines_title">Abunəçi təlimatlarını gizlət</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_on">Abunəliklərin icma təlimatları gizlidir</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_off">Abunəliklərin icma təlimatları göstərilir</string>
<string name="revanced_hide_channel_member_shelf_title">Kanal üzvü bölməsin gizlət</string>
@@ -267,32 +277,57 @@ Gözlənilməz hallardan xəbərdar olmayacaqsınız."</string>
<string name="revanced_hide_artist_cards_title">Sənətçi kartlarını gizlət</string>
<string name="revanced_hide_artist_cards_summary_on">Sənətçi kartları gizlidir</string>
<string name="revanced_hide_artist_cards_summary_off">Sənətçi kartları göstərilir</string>
<string name="revanced_hide_attributes_section_title">Atributları Gizlət</string>
<string name="revanced_hide_attributes_section_summary_on">Seçilən məkanlar, Oyunlar, Musiqi və qeyd edilən insanlar bölmələri gizlədilir</string>
<string name="revanced_hide_attributes_section_summary_off">Seçilən məkanlar, Oyunlar, Musiqi və qeyd edilən insanlar bölmələri görünür</string>
<string name="revanced_hide_chapters_section_title">Fəsilləri Gizlət</string>
<string name="revanced_hide_chapters_section_summary_on">Bölümlər bölməsi gizlidir</string>
<string name="revanced_hide_chapters_section_summary_off">Bölümlər bölməsi göstərilir</string>
<string name="revanced_hide_how_this_was_made_section_title">\'Bu məzmun necə hazırlanıb\'ı Gizlət</string>
<string name="revanced_hide_how_this_was_made_section_summary_on">Bu məzmunun necə hazırlandığı bölməsi gizlidir</string>
<string name="revanced_hide_how_this_was_made_section_summary_off">Bu məzmunun necə hazırlandığı bölməsi görünür</string>
<string name="revanced_hide_podcast_section_title">\'Podkastı araşdırın\"-ı Gizlət</string>
<string name="revanced_hide_podcast_section_summary_on">Podkast bölməsin araşdırın gizlidir</string>
<string name="revanced_hide_podcast_section_summary_off">Podkast bölməsin araşdırın görünür</string>
<string name="revanced_hide_info_cards_section_title">Məlumat Kartlarını Gizlət</string>
<string name="revanced_hide_info_cards_section_summary_on">Məlumat kartları bölməsi gizlədilir</string>
<string name="revanced_hide_info_cards_section_summary_off">Məlumat kartları bölməsi göstərilir</string>
<string name="revanced_hide_key_concepts_section_title">\"Əsas anlayışları\" gizlət</string>
<string name="revanced_hide_key_concepts_section_summary_on">Əsas anlayışlar bölməsi gizlidir</string>
<string name="revanced_hide_key_concepts_section_summary_off">Əsas anlayışlar bölməsi görünür</string>
<string name="revanced_hide_transcript_section_title">Transkript-i Gizlət</string>
<string name="revanced_hide_transcript_section_summary_on">Transkripsiya bölməsi gizlidir</string>
<string name="revanced_hide_transcript_section_summary_off">Transkripsiya bölməsi göstərilir</string>
<string name="revanced_hide_description_components_screen_title">Video açıqlaması</string>
<string name="revanced_hide_description_components_screen_summary">Video açıqlaması elementlərini gizlət və ya göstər</string>
<string name="revanced_hide_filter_bar_screen_title">Filtr çubuğu</string>
<string name="revanced_hide_filter_bar_screen_summary">Axında, axtarışda və əlaqəli videolardakı filtr çubuğunu gizlət və ya göstər</string>
<string name="revanced_hide_filter_bar_screen_summary">Axında, axtarış nəticələrində və əlaqəli videolarda filtr cərgəsin gizlət və ya göstər</string>
<string name="revanced_hide_filter_bar_feed_in_feed_title">Axında gizlət</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_on">Axında gizlidir</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_off">Axında göstərilir</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Axtarışda gizlət</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Axtarışda gizlidir</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Axtarışda görünür</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Axtarış nəticələrində gizlət</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Axtarış nəticələrində gizlədilib</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Axtarış nəticələrində göstərilir</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_title">Əlaqəli videolarda gizlət</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_on">Əlaqəli videolarda gizlidir</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_off">Əlaqəli videolarda görünür</string>
<string name="revanced_comments_screen_title">Şərhlər</string>
<string name="revanced_comments_screen_summary">Şərhlər bölməsi elementlərin gizlət və ya göstər</string>
<string name="revanced_hide_comments_chat_summary_title">\'Söhbət yekunun\' Gizlət</string>
<string name="revanced_hide_comments_chat_summary_summary_on">Söhbət yekunu gizlidir </string>
<string name="revanced_hide_comments_chat_summary_summary_off">Söhbət yekunu görünür</string>
<string name="revanced_hide_comments_by_members_header_title">\'Üzvlərin şərhləri\' başlığını gizlət</string>
<string name="revanced_hide_comments_by_members_header_summary_on">Üzvlərin şərhləri başlığı gizlidir</string>
<string name="revanced_hide_comments_by_members_header_summary_off">Üzvlərin şərhləri başlığı görünür</string>
<string name="revanced_hide_comments_section_title">Şərhlər bölməsini gizlət</string>
<string name="revanced_hide_comments_section_summary_on">Şərhlər bölməsi gizlidir</string>
<string name="revanced_hide_comments_section_summary_off">Şərhlər bölməsi göstərilir</string>
<string name="revanced_hide_comments_create_a_short_button_title">\"Shorts Yarat\" düyməsini gizlət</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Short yarat düyməsi gizlidir</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Short yarat düyməsi görünür</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Emoji və vaxt möhürü düymələrin gizlət</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Emoji və vaxt möhürü düymələri gizlidir</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Emoji və vaxt möhürü düymələri görünür</string>
<string name="revanced_hide_comments_preview_comment_title">Önbaxış şərhin gizlət</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Önbaxış şərhi gizlədilib</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Önbaxış şərhi göstərilir</string>
@@ -369,7 +404,6 @@ Bu xüsusiyyət yalnız köhnə cihazlar üçün mövcuddur"</string>
<string name="revanced_hide_self_sponsor_ads_title">Öz-sponsorlu kartları gizlət</string>
<string name="revanced_hide_self_sponsor_ads_summary_on">Özünə sponsorluq edilən kartlar gizlidir</string>
<string name="revanced_hide_self_sponsor_ads_summary_off">Özünə sponsorluq edilən kartlar göstərilir</string>
<string name="revanced_hide_products_banner_title">Məhsullara baxma etiketin gizlət</string>
<string name="revanced_hide_products_banner_summary_on">Etiket gizlədilib</string>
<string name="revanced_hide_products_banner_summary_off">Etiket göstərilir</string>
<string name="revanced_hide_end_screen_store_banner_title">Son ekran mağaza etiketini gizlət</string>
@@ -379,8 +413,12 @@ Bu xüsusiyyət yalnız köhnə cihazlar üçün mövcuddur"</string>
<string name="revanced_hide_player_store_shelf_summary_on">Alış-veriş rəfi gizlidir</string>
<string name="revanced_hide_player_store_shelf_summary_off">Alış-veriş rəfi göstərilir</string>
<string name="revanced_hide_shopping_links_title">Video açıqlamada alış-veriş linklərin gizlə</string>
<string name="revanced_hide_shopping_links_summary_on">Video təsvirində alış-veriş linkləri gizlədilib</string>
<string name="revanced_hide_shopping_links_summary_off">Video təsvirində alış-veriş linkləri görünür</string>
<!-- 'Visit store' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_visit_store_button_title">Kanalda \"Mağazaya ziyarət\" düyməsin gizlə</string>
<string name="revanced_hide_visit_store_button_summary_on">Kanal səhifəsindəki düymə gizlidir</string>
<string name="revanced_hide_visit_store_button_summary_off">Kanal səhifəsindəki düymə görünür</string>
<string name="revanced_hide_web_search_results_title">Veb axtarış nəticələrini gizlət</string>
<string name="revanced_hide_web_search_results_summary_on">Veb axtarış nəticələri gizlədilir</string>
<string name="revanced_hide_web_search_results_summary_off">Veb axtarış nəticələri göstərilir</string>
@@ -404,10 +442,10 @@ Bu xüsusiyyət yalnız köhnə cihazlar üçün mövcuddur"</string>
<string name="revanced_share_copy_url_success">URL buferə köçürüldü</string>
<string name="revanced_share_copy_url_timestamp_success">Vaxt möhürlü URL köçürüldü</string>
<string name="revanced_copy_video_url_title">Video URL-i köçürmə düyməsin göstər</string>
<string name="revanced_copy_video_url_summary_on">Düymə göstərilir. Video URL-sini köçürmək üçün toxun. Vaxt möhürlü video URL-sini köçürmək üçün basılı saxla</string>
<string name="revanced_copy_video_url_summary_on">Düymə göstərilir. Video URL-ni köçürmək üçün toxun. Vaxt möhürü ilə köçürmək üçün basıb saxlayın</string>
<string name="revanced_copy_video_url_summary_off">Düymə göstərilmir</string>
<string name="revanced_copy_video_url_timestamp_title">Vaxt möhürü URL köçür düyməsi göstər</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Düymə göstərilir. Vaxt möhürlü video URL-sini köçürmək üçün toxun. Vaxt möhürü olmadan köçürmək üçün basılı saxla</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Düymə göstərilir. Video URL-ni vaxt möhürü ilə köçürmək üçün toxun. Vaxt möhürü olmadan köçürmək üçün basıb saxlayın</string>
<string name="revanced_copy_video_url_timestamp_summary_off">Düymə göstərilmir</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
@@ -420,6 +458,8 @@ Bu xüsusiyyət yalnız köhnə cihazlar üçün mövcuddur"</string>
<string name="revanced_external_downloader_screen_title">Xarici yükləmələr</string>
<string name="revanced_external_downloader_screen_summary">Xarici yükləyici istifadəsi üçün tənzimləmələr</string>
<string name="revanced_external_downloader_title">Xarici yükləmə düyməsini göstər</string>
<string name="revanced_external_downloader_summary_on">Endirin düyməsi oynadıcıda göstərilir</string>
<string name="revanced_external_downloader_summary_off">Endirin düyməsi oynadıcıda göstərilmir</string>
<!-- 'download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title' -->
<string name="revanced_external_downloader_action_button_title">Yükləmə fəaliyyət düyməsin qəbul etmə</string>
<string name="revanced_external_downloader_action_button_summary_on">Yükləmə düyməsi, xarici yükləyicinizi açır</string>
@@ -440,11 +480,15 @@ Bu xüsusiyyət yalnız köhnə cihazlar üçün mövcuddur"</string>
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
<string name="revanced_swipe_brightness_title">Parlaqlıq jestini aktivləşdir</string>
<string name="revanced_swipe_brightness_summary_on">Parlaqlıq sürüşdürmə aktivdir</string>
<string name="revanced_swipe_brightness_summary_off">Parlaqlıq sürüşdürmə qeyri-aktivdir</string>
<string name="revanced_swipe_brightness_summary_on">"Tam ekran parlaqlıq sürüşdürməsi aktivdir
Ekranın sol tərəfində dikinə sürüşdürərək parlaqlığı tənzimləyin"</string>
<string name="revanced_swipe_brightness_summary_off">Tam ekran parlaqlıq sürüşdürməsi qapalıdır</string>
<string name="revanced_swipe_volume_title">Səs səviyyəsi jestini aktivləşdir</string>
<string name="revanced_swipe_volume_summary_on">Səs səviyyəsin sürüşdürmə aktivdir</string>
<string name="revanced_swipe_volume_summary_off">Səs səviyyəsin sürüşdürmə qeyri-aktivdir</string>
<string name="revanced_swipe_volume_summary_on">"Tam ekran səs sürüşdürməsi aktivdir
Ekranın sağ tərəfində düzünə sürüşdürərək səs səviyyəsini tənzimlə"</string>
<string name="revanced_swipe_volume_summary_off">Tam ekran səs sürüşdürməsi qapalıdır</string>
<string name="revanced_swipe_press_to_engage_title">Basıb sürüşdürmə jestini aktivləşdir</string>
<string name="revanced_swipe_press_to_engage_summary_on">Sürüşdürmək üçün basma aktivdir</string>
<string name="revanced_swipe_press_to_engage_summary_off">Sürüşdürmək üçün basma qeyri-aktivdir</string>
@@ -457,16 +501,19 @@ Bu xüsusiyyət yalnız köhnə cihazlar üçün mövcuddur"</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_title">Avto-parlaqlıq jestini aktivləşdir</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_on">Parlaqlıq ən aşağı dəyərinə sürüşdürüləndə avto-parlaqlıq aktivləşir</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_off">Parlaqlığı ən aşağı dəyərə sürüşdürəndə avto-parlaqlıq aktivləşmir</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_overlay_text">Birbaşa</string>
<string name="revanced_swipe_overlay_timeout_title">Sürüşdürmə örtüyü müddəti</string>
<string name="revanced_swipe_overlay_timeout_summary">Örtüyün göründüyü millisaniyələrin sayı</string>
<string name="revanced_swipe_text_overlay_size_title">Örtük mətn ölçüsü dəyişdirmə</string>
<string name="revanced_swipe_text_overlay_size_summary">Sürüşdürmə örtüyü üçün mətn ölçüsü</string>
<string name="revanced_swipe_overlay_background_opacity_title">Sürüşdürmə cildi arxa plan qeyri-şəffaflığı</string>
<string name="revanced_swipe_overlay_background_opacity_summary">0-100 arası qeyri-şəffaflıq dəyəri</string>
<string name="revanced_swipe_overlay_background_opacity_invalid_toast">Sürüşmə qeyri-şəffaflığı 0-100 arası olmalıdır</string>
<string name="revanced_swipe_threshold_title">Sürüşdürmə böyüklük həddi</string>
<string name="revanced_swipe_threshold_summary">Sürüşdürmənin icra edilməsi üçün son dəyər</string>
<string name="revanced_swipe_show_circular_overlay_title">Dairəvi örtüyü göstər</string>
<string name="revanced_swipe_show_circular_overlay_summary_on">Dairəvi örtük göstərilir</string>
<string name="revanced_swipe_show_circular_overlay_summary_off">Düzünə örtük göstərilir</string>
<string name="revanced_swipe_overlay_minimal_style_title">Ən kiçik üslubu aktivləşdir</string>
<string name="revanced_swipe_overlay_minimal_style_summary_on">Ən kiçik örtük üslubu aktivləşdirilib</string>
<string name="revanced_swipe_overlay_minimal_style_summary_off">Ən kiçik örtük üslubu qapalıdır</string>
<string name="revanced_swipe_change_video_title">Videoları ötürmək üçün sürüşdürməni aktiv et</string>
<string name="revanced_swipe_change_video_summary_on">Tam ekran rejimində sürüşdürmə növbəti/əvvəlki videoya ötürəcək</string>
<string name="revanced_swipe_change_video_summary_off">Tam ekran rejimində sürüşdürmə növbəti/əvvəlki videoya ötürməyəcək</string>
@@ -479,6 +526,9 @@ Bu xüsusiyyət yalnız köhnə cihazlar üçün mövcuddur"</string>
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">Fəaliyyət düymələri</string>
<string name="revanced_hide_buttons_screen_summary">Videonun altındakı düymələri gizlət və ya göstər</string>
<string name="revanced_disable_like_subscribe_glow_title">Bəyən və Abunə Ol parıltısını söndür</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Bəyən və Abunə ol düyməsinə toxunanda parlamayacaq</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Bəyən və Abunə ol düyməsinə toxunanda parlayacaq</string>
<string name="revanced_hide_like_dislike_button_title">\"Bəyənmə\" və \"Bəyənməmə\"ni gizlət</string>
<string name="revanced_hide_like_dislike_button_summary_on">Bəyənmə və Bəyənməmə düymələri gizlidir</string>
<string name="revanced_hide_like_dislike_button_summary_off">Bəyənmə və Bəyənməmə düymələri göstərilir</string>
@@ -531,12 +581,18 @@ Bu xüsusiyyət yalnız köhnə cihazlar üçün mövcuddur"</string>
<string name="revanced_hide_subscriptions_button_title">\"Abunəliklər\"i gizlət</string>
<string name="revanced_hide_subscriptions_button_summary_on">Abunəliklər düyməsi gizlidir</string>
<string name="revanced_hide_subscriptions_button_summary_off">Abunəliklər düyməsi göstərilir</string>
<string name="revanced_hide_notifications_button_title">Bildirişləri Gizlət</string>
<string name="revanced_hide_notifications_button_summary_on">Bildirişlər düyməsi gizlidir</string>
<string name="revanced_hide_notifications_button_summary_off">Bildirişlər düyməsi görünür</string>
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_switch_create_with_notifications_button_title">\"Yarat\"ı \"Bildirişlər\" ilə dəyişdir</string>
<string name="revanced_switch_create_with_notifications_button_summary_on">"Yarat düyməsi Bildirişlər düyməsi ilə dəyişdirilir
Qeyd: Bunu aktivləşdirmə video reklamları da məcburi olaraq gizlədir"</string>
<string name="revanced_switch_create_with_notifications_button_summary_off">\"Yarat\" düyməsi, \"Bildirişlər\" düyməsi ilə əvəzlənmir</string>
<string name="revanced_switch_create_with_notifications_button_user_dialog_message">"Bu seçimin qapanması Shorts reklam əngəllənməsin də qapadacaq.
Bu seçimi dəyişdirmə işə düşmürsə, Gizli rejimə keçməyə çalışın."</string>
<string name="revanced_hide_navigation_button_labels_title">Fəaliyyət düymə etiketlərini gizlət</string>
<string name="revanced_hide_navigation_button_labels_summary_on">Etiketlər gizlidir</string>
<string name="revanced_hide_navigation_button_labels_summary_off">Etiketlər göstərilir</string>
@@ -606,7 +662,6 @@ Qeyd: Bunu aktivləşdirmə video reklamları da məcburi olaraq gizlədir"</str
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">Video keyfiyyət menyusu alt məlumatı göstərilir</string>
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<string name="revanced_hide_player_previous_next_buttons_title">Əvvəlki/növbəti video düymələrin gizlət</string>
<string name="revanced_hide_player_previous_next_buttons_summary_on">Düymələr gizlidir</string>
<string name="revanced_hide_player_previous_next_buttons_summary_off">Düymələr göstərilir</string>
<string name="revanced_hide_cast_button_title">Yayımla düyməsini gizlət</string>
@@ -751,10 +806,12 @@ Qeyd: Bunu aktivləşdirmə video reklamları da məcburi olaraq gizlədir"</str
<string name="revanced_hide_shorts_navigation_bar_summary_on">Fəaliyyət çubuğu gizlidir</string>
<string name="revanced_hide_shorts_navigation_bar_summary_off">Fəaliyyət çubuğu göstərilir</string>
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<string name="revanced_disable_suggested_video_end_screen_title">Təklif edilən video bitiş ekranın qapadın</string>
<string name="revanced_disable_suggested_video_end_screen_summary_on">Təklif olunan videolar qeyri-aktiv ediləcək</string>
<string name="revanced_disable_suggested_video_end_screen_summary_off">Təklif olunan videolar göstəriləcək</string>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
<string name="revanced_end_screen_suggested_video_title">Son ekran bildirilən videonu gizlət</string>
<string name="revanced_end_screen_suggested_video_summary_on">"Avtomatik oynatma qapadılanda son ekran bildirilən video gizlədilir
Avtomatik oynatma YouTube ayarlarında dəyişdirilə bilər: Ayarlar → Oxunuş → Növbəti videonu avtomatik oxudun"</string>
<string name="revanced_end_screen_suggested_video_summary_off">Son ekranda bildirilən video göstərilir</string>
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
<string name="revanced_hide_timestamp_title">Video vaxt möhürünü gizlət</string>
@@ -787,6 +844,7 @@ Qeyd: Bunu aktivləşdirmə video reklamları da məcburi olaraq gizlədir"</str
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<string name="revanced_ryd_failure_connection_timeout">\"Bəyənməmə\" müvəqqəti əlçatmazdır (API vaxtı bitdi)</string>
<string name="revanced_ryd_failure_connection_status_code">Bəyənməmə əlçatmazdır (status %d)</string>
<string name="revanced_ryd_failure_client_rate_limit_requested">Bəyənməmələr mövcud deyil (qəbuledici API limiti)</string>
<string name="revanced_ryd_failure_generic">Bəyənməmə əlçatmazdır (%s)</string>
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<string name="revanced_ryd_failure_ryd_enabled_while_playing_video_then_user_voted">Ryd ilə səsvermə üçün videonu yenidən yüklə</string>
@@ -795,7 +853,14 @@ Qeyd: Bunu aktivləşdirmə video reklamları da məcburi olaraq gizlədir"</str
<string name="revanced_ryd_enable_summary_on">Bəyənməmələr göstərilir</string>
<string name="revanced_ryd_enable_summary_off">Bəyənməmələr göstərilmir</string>
<string name="revanced_ryd_shorts_title">\"Shorts\"da bəyənməmə sayını göstər</string>
<string name="revanced_ryd_shorts_summary_on">Bəyənməmələr Shorts-da göstərilir</string>
<string name="revanced_ryd_shorts_summary_on_disclaimer">"Bəyənməmələr Shorts-da göstərilir
Məhdudiyyət: Bəyənməmələr gizli rejimdə görünməyə bilər"</string>
<string name="revanced_ryd_shorts_summary_off">Bəyənməmələr Shorts-da göstərilmir</string>
<string name="revanced_ryd_dislike_percentage_title">\"Bəyənməmə\"lər faiz olaraq</string>
<string name="revanced_ryd_dislike_percentage_summary_on">Bəyənməmələr faiz kimi göstərilir</string>
<string name="revanced_ryd_dislike_percentage_summary_off">Bəyənməmələr nömrə kimi göstərilir</string>
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button' -->
<string name="revanced_ryd_compact_layout_title">Yığcam Bəyən Düyməsi</string>
<string name="revanced_ryd_compact_layout_summary_on">Daha kiçik en üçün hazırlanmış Bəyən düyməsi</string>
@@ -857,15 +922,20 @@ Bu funksiya 720p və ya daha aşağı video keyfiyyəti ilə və çox sürətli
<string name="revanced_sb_square_layout_sum_on">Düymələr və idarəedicilər kvadratdır </string>
<string name="revanced_sb_square_layout_sum_off">Düymələr və idarəedicilər dairəvidir</string>
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title' -->
<string name="revanced_sb_enable_compact_skip_button">Yığcam Ötürmə düyməsini istifadə et</string>
<string name="revanced_sb_enable_compact_skip_button_sum_on">Ən kiçik en üçün hazırlanmış ötürmə düyməsi</string>
<string name="revanced_sb_enable_compact_skip_button_sum_off">Ən yaxşı görünüş üçün hazırlanan ötürmə düyməsi</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button">Ötürmə düyməsini avtomatik gizlət</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_on">Ötürmə düyməsi bir neçə saniyə sonra gizlənir</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_off">Ötürmə düyməsi bütün bölüm ərzində göstərilir</string>
<string name="revanced_sb_general_skiptoast">Ötürüləndə ani bildiriş göstər</string>
<string name="revanced_sb_general_skiptoast_sum_on">Bölüm avto-ötürüləndə bildiriş göstərilir. Nümunə görmək üçün bura toxun</string>
<string name="revanced_sb_general_skiptoast_sum_off">Bildiriş göstərilmir. Nümunə görmək üçün bura toxun</string>
<string name="revanced_sb_general_time_without">Bölümsüz video uzunluğun göstər</string>
<string name="revanced_sb_general_time_without_sum_on">Video uzunluğu bütün bölümləri silir, tam video uzunluğu yanaşı mötərizədə göstərilir</string>
<string name="revanced_sb_general_time_without_sum_off">Tam video uzunluğu göstərilir</string>
<string name="revanced_sb_create_segment_category">Yeni bölümlər yaradılır</string>
<string name="revanced_sb_enable_create_segment">Yeni Bölüm Yarat Düyməsini Göstər</string>
<string name="revanced_sb_enable_create_segment_sum_on">Yeni bölüm yarat düyməsi göstərilir</string>
<string name="revanced_sb_enable_create_segment_sum_off">Yeni bölüm yarat düyməsi göstərilmir</string>
<string name="revanced_sb_general_adjusting">Yeni bölüm irəliləyişini tənzimlə</string>
@@ -959,6 +1029,7 @@ Sizin istifadəçi Id-niz parol kimidir və heç vaxt paylaşmaq olmaz.
<string name="revanced_sb_skipped_multiple_segments">Çoxlu bölümlər ötürüldü</string>
<string name="revanced_sb_skip_automatically">Birbaşa ötür</string>
<string name="revanced_sb_skip_automatically_once">Bir dəfə avtomatik ötür</string>
<string name="revanced_sb_skip_showbutton">Ötürmə Düyməsini Göstər</string>
<string name="revanced_sb_skip_seekbaronly">İrəliləmə cizgisində göstər</string>
<string name="revanced_sb_skip_ignore">Qapadın</string>
<string name="revanced_sb_submit_failed_invalid">Bölüm göndərilmir: %s</string>
@@ -984,6 +1055,9 @@ Artıq mövcuddur"</string>
<string name="revanced_sb_new_segment_disabled_category">Seçimlərdə kateqoriya qeyri-aktivdir. Göndərmək üçün kateqoriyanı aktiv et.</string>
<string name="revanced_sb_new_segment_title">Yeni SponsorBlock bölümü</string>
<string name="revanced_sb_new_segment_mark_time_as_question">%s, yeni bölümün başlanğıcı və ya sonu kimi təyin edilsin?</string>
<string name="revanced_sb_new_segment_mark_start">Başlanğıc</string>
<string name="revanced_sb_new_segment_mark_end">Bitmə</string>
<string name="revanced_sb_new_segment_now">İndi</string>
<string name="revanced_sb_new_segment_time_start">Bölüm başladığı vaxt</string>
<string name="revanced_sb_new_segment_time_end">Bölümün bitmə vaxtı</string>
<string name="revanced_sb_new_segment_confirm_title">Vaxtlar düzgündür?</string>
@@ -1004,6 +1078,7 @@ Təqdim etməyə hazırdır?"</string>
<string name="revanced_sb_new_segment_edit_by_hand_parse_error">Yanlış vaxt verilmişdir</string>
<string name="revanced_sb_stats">Statistikalar</string>
<!-- Shown in the settings preferences, and translations can be any text length. -->
<string name="revanced_sb_stats_connection_failure">Statistikalar müvəqqəti mövcud deyil (API işləmir)</string>
<string name="revanced_sb_stats_loading">Yüklənir...</string>
<string name="revanced_sb_stats_sb_disabled">SponsorBlock qapadıldı</string>
<string name="revanced_sb_stats_username">İstifadəçi adınız: &lt;b&gt;%s&lt;/b&gt;</string>
@@ -1117,7 +1192,6 @@ Sonradan qapadılarsa, UI səhvlərin önləmək üçün tətbiq məlumatların
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Kiçik oynadıcı</string>
<string name="revanced_miniplayer_screen_summary">Tətbiqdə kiçildilən oynadıcı üslubunu dəyişdir</string>
<string name="revanced_miniplayer_type_title">Kiçik oynadıcı növü</string>
<string name="revanced_miniplayer_type_entry_0">Qeyri-aktivdir</string>
<string name="revanced_miniplayer_type_entry_1">İlkin</string>
@@ -1221,9 +1295,13 @@ DeArrow haqqında ətraflı öyrənmək üçün bura toxun"</string>
<string name="revanced_alt_thumbnail_stills_time_entry_2">Videonun ortası</string>
<string name="revanced_alt_thumbnail_stills_time_entry_3">Videonun sonu</string>
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
<string name="revanced_alt_thumbnail_dearrow_error">DeArrow müvəqqəti mövcud deyil (status kodu: %s) </string>
<string name="revanced_alt_thumbnail_dearrow_error_generic">DeArrow müvəqqəti olaraq mövcud deyil</string>
</patch>
<patch id="misc.announcements.announcementsPatch">
<string name="revanced_announcements_title">ReVanced elanlarını göstər</string>
<string name="revanced_announcements_summary_on">Elanlar başlanğıcda göstərilir</string>
<string name="revanced_announcements_summary_off">Elanlar başlanğıcda göstərilmir</string>
<string name="revanced_announcements_enabled_summary">Elanlarıılışda göstər</string>
<string name="revanced_announcements_connection_failed">Elan provayderinə bağlanmaq olmadı</string>
<string name="revanced_announcements_dialog_dismiss">Ləğv et</string>
@@ -1259,8 +1337,6 @@ Bunu aktivləşdirmə daha yüksək video keyfiyyətləri əngəlin silə bilər
</patch>
<patch id="misc.links.openLinksExternallyPatch">
<string name="revanced_external_browser_title">Bağlantıları brauzerdə aç</string>
<string name="revanced_external_browser_summary_on">Bağlantılar xarici yolla açılır</string>
<string name="revanced_external_browser_summary_off">Bağlantılar tətbiqdə açılır</string>
</patch>
<patch id="misc.privacy.removeTrackingQueryParameterPatch">
<string name="revanced_remove_tracking_query_parameter_title">İzləmə sorğusu faktorun sil</string>
@@ -1273,10 +1349,11 @@ Bunu aktivləşdirmə daha yüksək video keyfiyyətləri əngəlin silə bilər
<string name="revanced_disable_zoom_haptics_summary_off">Reaksiya aktivdir</string>
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<string name="revanced_force_original_audio_title">Orijinal səsi tələb et</string>
<string name="revanced_force_original_audio_summary_on">Orijinal səs istifadəsi</string>
<string name="revanced_force_original_audio_title">Orijinal səs dilini zorla</string>
<string name="revanced_force_original_audio_summary_on">Orijinal səs dilini istifadə</string>
<string name="revanced_force_original_audio_summary_off">İlkin səs istifadəsi</string>
<string name="revanced_force_original_audio_not_available">Bu xüsusiyyəti işlətmək üçün yayım saxtalaşdırmanı iOS ötürücü növünə dəyiş</string>
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
<string name="revanced_force_original_audio_not_available">Bu xüsusiyyəti istifadə etmək üçün \"Saxta video yayımların\" iOS TV-yə dəyiş</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

View File

@@ -168,9 +168,6 @@ Second \"item\" text"</string>
Вы не будзеце атрымліваць апавяшчэнні пра нечаканыя падзеі."</string>
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<string name="revanced_disable_like_subscribe_glow_title">Адключыць свецянне кнопак «Мне падабаецца» і «Падпісацца»</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Кнопкі «Падабаецца» і «Падпісацца» не будуць мігцець пры згадванні</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Кнопкі «Падабаецца» і «Падпісацца» будуць мігцець пры згадванні</string>
<string name="revanced_hide_album_cards_title">Схаваць карты альбома</string>
<string name="revanced_hide_album_cards_summary_on">Карткі альбомаў схаваныя</string>
<string name="revanced_hide_album_cards_summary_off">Паказваюцца альбомныя карткі</string>
@@ -304,13 +301,13 @@ Second \"item\" text"</string>
<string name="revanced_hide_description_components_screen_title">Апісанне відэа</string>
<string name="revanced_hide_description_components_screen_summary">Схаваць або паказаць кампаненты апісання відэа</string>
<string name="revanced_hide_filter_bar_screen_title">Панэль фільтраў</string>
<string name="revanced_hide_filter_bar_screen_summary">Схаваць або паказаць панэль фільтраў у стужцы, пошуку і звязаных відэа</string>
<string name="revanced_hide_filter_bar_screen_summary">Схаваць ці паказаць панэль фільтраў у стужцы, выніках пошуку і звязаных відэа</string>
<string name="revanced_hide_filter_bar_feed_in_feed_title">Схаваць у карме</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_on">Схаваны ў стужцы</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_off">Паказваецца ў стужцы</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Схавацца ў пошуку</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Схаваны ў пошуку</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Паказваецца ў пошуку</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Схаваць у выніках пошуку</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Схавана ў выніках пошуку</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Паказана ў выніках пошуку</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_title">Схаваць у звязаных відэа</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_on">Схавана ў звязаных відэа</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_off">Паказана ў звязаных відэа</string>
@@ -407,7 +404,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_self_sponsor_ads_title">Схаваць самі спансаваныя карты</string>
<string name="revanced_hide_self_sponsor_ads_summary_on">Спонсарскія карткі схаваныя</string>
<string name="revanced_hide_self_sponsor_ads_summary_off">Паказваюцца ўласныя карты</string>
<string name="revanced_hide_products_banner_title">Схаваць банер для прагляду прадуктаў</string>
<string name="revanced_hide_products_banner_title">Схаваць банер «Паглядзець прадукты»</string>
<string name="revanced_hide_products_banner_summary_on">Банэр схаваны</string>
<string name="revanced_hide_products_banner_summary_off">Паказваецца банэр</string>
<string name="revanced_hide_end_screen_store_banner_title">Схаваць банер крамы на канчатковым экране</string>
@@ -446,10 +443,10 @@ Second \"item\" text"</string>
<string name="revanced_share_copy_url_success">URL скапіраваны ў буфер абмену</string>
<string name="revanced_share_copy_url_timestamp_success">URL-адрас з пазнакай часу скапіраваны</string>
<string name="revanced_copy_video_url_title">Паказаць кнопку скапіравання URL відэа</string>
<string name="revanced_copy_video_url_summary_on">Паказана кнопка. Націсніце, каб скапіяваць URL відэа. Націсніце і ўтрымлівайце, каб скапіяваць URL відэа з пазнакай часу</string>
<string name="revanced_copy_video_url_summary_on">Кнопка паказана. Націсніце, каб скапіяваць URL відэа. Націсніце і ўтрымлівайце, каб скапіяваць з пазнакай часу</string>
<string name="revanced_copy_video_url_summary_off">Кнопка не паказваецца</string>
<string name="revanced_copy_video_url_timestamp_title">Паказаць кнопку URL-адрас з часовай пазнакай</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Паказана кнопка. Націсніце, каб скапіяваць URL відэа з пазнакай часу. Націсніце і ўтрымлівайце, каб скапіяваць відэа без пазнакі часу</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Кнопка паказана. Націсніце, каб скапіяваць URL відэа з пазнакай часу. Націсніце і ўтрымлівайце, каб скапіяваць без пазнакі часу</string>
<string name="revanced_copy_video_url_timestamp_summary_off">Кнопка не паказваецца</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
@@ -484,11 +481,15 @@ Second \"item\" text"</string>
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
<string name="revanced_swipe_brightness_title">Уключыць жэст яркасці</string>
<string name="revanced_swipe_brightness_summary_on">Правядзенне па яркасці ўключана</string>
<string name="revanced_swipe_brightness_summary_off">Правядзенне пальцам па яркасці адключана</string>
<string name="revanced_swipe_brightness_summary_on">"Поўнаэкранны жэст правядзення для яркасці ўключаны
Наладжвайце яркасць, праводзячы вертыкальна па левым баку экрана"</string>
<string name="revanced_swipe_brightness_summary_off">Поўнаэкранны жэст правядзення для яркасці выключаны</string>
<string name="revanced_swipe_volume_title">Уключыць жэст гучнасці</string>
<string name="revanced_swipe_volume_summary_on">Правядзенне пальцам па гучнасці ўключана</string>
<string name="revanced_swipe_volume_summary_off">Правядзенне пальцам па гучнасці адключана</string>
<string name="revanced_swipe_volume_summary_on">"Правядзенне пальцам для рэгулявання гучнасці ва ўвесь экран уключана
Рэгулюйце гучнасць, праводзячы пальцам вертыкальна па правай частцы экрана"</string>
<string name="revanced_swipe_volume_summary_off">Правядзенне пальцам для рэгулявання гучнасці ва ўвесь экран выключана</string>
<string name="revanced_swipe_press_to_engage_title">Уключыць жэст \"націсканне для правядзення пальцам\"</string>
<string name="revanced_swipe_press_to_engage_summary_on">Правядзенне пальцам уключана</string>
<string name="revanced_swipe_press_to_engage_summary_off">Правядзенне пальцам адключана</string>
@@ -501,16 +502,19 @@ Second \"item\" text"</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_title">Уключыць жэст аўтаматычнай яркасці</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_on">Правядзіце пальцам уніз да самага нізкага значэння яркасці, каб уключыць аўтаматычную яркасць</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_off">Правядзенне пальцам уніз да самага нізкага значэння не ўключае аўтаматычную яркасць</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_overlay_text">Аўто</string>
<string name="revanced_swipe_overlay_timeout_title">Тайм-аўт накладання пальцам</string>
<string name="revanced_swipe_overlay_timeout_summary">Працягласць бачнага накладання ў мілісекундах</string>
<string name="revanced_swipe_text_overlay_size_title">Памер накладанага тэксту</string>
<string name="revanced_swipe_text_overlay_size_summary">Памер тэксту для накладання пальцам</string>
<string name="revanced_swipe_overlay_background_opacity_title">Непразрыстасць фону накладкі пракруткі</string>
<string name="revanced_swipe_overlay_background_opacity_summary">Значэнне непразрыстасці паміж 0-100</string>
<string name="revanced_swipe_overlay_background_opacity_invalid_toast">Непразрыстасць пракруткі павінна быць паміж 0-100</string>
<string name="revanced_swipe_threshold_title">Парог велічыні пальцам</string>
<string name="revanced_swipe_threshold_summary">Велічыня парогавага значэння для правядзення пальцам</string>
<string name="revanced_swipe_show_circular_overlay_title">Паказваць кругавое накладанне</string>
<string name="revanced_swipe_show_circular_overlay_summary_on">Кругавое накладанне паказваецца</string>
<string name="revanced_swipe_show_circular_overlay_summary_off">Гарызантальнае накладанне паказваецца</string>
<string name="revanced_swipe_overlay_minimal_style_title">Уключыць мінімальны стыль</string>
<string name="revanced_swipe_overlay_minimal_style_summary_on">Уключаны мінімальны стыль накладання</string>
<string name="revanced_swipe_overlay_minimal_style_summary_off">Мінімальны стыль накладання выключаны</string>
<string name="revanced_swipe_change_video_title">Уключыць зьмену відэа праз правядзенне пальцам</string>
<string name="revanced_swipe_change_video_summary_on">Правядзенне пальцам у рэжыме поўнага экрана зьменіць відэа на наступнае/папярэдняе</string>
<string name="revanced_swipe_change_video_summary_off">Правядзенне пальцам у рэжыме поўнага экрана не зьменіць відэа на наступнае/папярэдняе</string>
@@ -523,6 +527,9 @@ Second \"item\" text"</string>
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">Кнопкі дзеянняў</string>
<string name="revanced_hide_buttons_screen_summary">Схаваць або паказаць кнопкі пад відэа</string>
<string name="revanced_disable_like_subscribe_glow_title">Адключыць свецянне кнопак «Мне падабаецца» і «Падпісацца»</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Кнопкі «Падабаецца» і «Падпісацца» не будуць мігцець пры згадванні</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Кнопкі «Падабаецца» і «Падпісацца» будуць мігцець пры згадванні</string>
<string name="revanced_hide_like_dislike_button_title">Схаваць \"Падабаецца\" і \"Не падабаецца\"</string>
<string name="revanced_hide_like_dislike_button_summary_on">Кнопкі \"Падабаецца\" і \"Не падабаецца\" схаваны</string>
<string name="revanced_hide_like_dislike_button_summary_off">Паказваюцца кнопкі \"Падабаецца\" і \"Не падабаецца\"</string>
@@ -575,12 +582,18 @@ Second \"item\" text"</string>
<string name="revanced_hide_subscriptions_button_title">Схаваць падпіскі</string>
<string name="revanced_hide_subscriptions_button_summary_on">Кнопка \"Падпіскі\" схавана</string>
<string name="revanced_hide_subscriptions_button_summary_off">Паказана кнопка \"Падпіскі\"</string>
<string name="revanced_hide_notifications_button_title">Схаваць апавяшчэнні</string>
<string name="revanced_hide_notifications_button_summary_on">Кнопка апавяшчэнняў схаваная</string>
<string name="revanced_hide_notifications_button_summary_off">Кнопка апавяшчэнняў паказаная</string>
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_switch_create_with_notifications_button_title">Пераключальнік \"Стварыць з апавяшчэннямі\"</string>
<string name="revanced_switch_create_with_notifications_button_summary_on">"Кнопка «Стварыць» заменена кнопкай «Апавяшчэнні»
Заўвага: Уключэнне гэтага таксама прымусова схавае відэарэкламу"</string>
<string name="revanced_switch_create_with_notifications_button_summary_off">Кнопка \"Стварыць\" не ўзаемадзейнічае з кнопкай \"Апавяшчэнні\"</string>
<string name="revanced_switch_create_with_notifications_button_user_dialog_message">"Адключэнне гэтай налады таксама адключыць блакіроўку рэкламы Shorts.
Калі змена гэтай налады не ўступае ў сілу, паспрабуйце пераключыцца ў рэжым інкогніта."</string>
<string name="revanced_hide_navigation_button_labels_title">Схаваць меткі кнопак навігацыі</string>
<string name="revanced_hide_navigation_button_labels_summary_on">Цэтлікі схаваныя</string>
<string name="revanced_hide_navigation_button_labels_summary_off">Этыкеткі паказаны</string>
@@ -650,7 +663,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">Паказваецца ніжні калонтытул меню якасці відэа</string>
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<string name="revanced_hide_player_previous_next_buttons_title">Схаваць папярэдні &amp; кнопкі наступнага відэа</string>
<string name="revanced_hide_player_previous_next_buttons_title">Схаваць папярэднія &amp; кнопкі «Далей»</string>
<string name="revanced_hide_player_previous_next_buttons_summary_on">Кнопкі схаваныя</string>
<string name="revanced_hide_player_previous_next_buttons_summary_off">Паказваюцца кнопкі</string>
<string name="revanced_hide_cast_button_title">Схаваць кнопку «Трансляцыя»</string>
@@ -795,10 +808,13 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_navigation_bar_summary_on">Панэль навігацыі схавана</string>
<string name="revanced_hide_shorts_navigation_bar_summary_off">Паказана панэль навігацыі</string>
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<string name="revanced_disable_suggested_video_end_screen_title">Адключыць канчатковы экран прапанаванага відэа</string>
<string name="revanced_disable_suggested_video_end_screen_summary_on">Прапанаваныя відэа будуць адключаны</string>
<string name="revanced_disable_suggested_video_end_screen_summary_off">Будуць паказаны прапанаваныя відэа</string>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
<string name="revanced_end_screen_suggested_video_title">Схаваць прапанаванае відэа на канчатковым экране</string>
<string name="revanced_end_screen_suggested_video_summary_on">"Прапанаванае відэа на канчатковым экране будзе схавана, калі аўтаматычнае прайграванне выключана.
Аўтаматычнае прайграванне можна змяніць у наладах YouTube:
Налады → Прайграванне → Аўтаматычнае прайграванне наступнага відэа"</string>
<string name="revanced_end_screen_suggested_video_summary_off">Паказваць прапанаванае відэа на канчатковым экране</string>
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
<string name="revanced_hide_timestamp_title">Схаваць метку часу відэа</string>
@@ -1180,7 +1196,7 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Міні-плэер</string>
<string name="revanced_miniplayer_screen_summary">Змяніце стыль мінімізаванага плэера ў праграме</string>
<string name="revanced_miniplayer_screen_summary">Змяніць стыль згорнутага прайгравальніка ў праграме</string>
<string name="revanced_miniplayer_type_title">Тып мініплэера</string>
<string name="revanced_miniplayer_type_entry_0">Інваліды</string>
<string name="revanced_miniplayer_type_entry_1">Па змаўчанні</string>
@@ -1326,8 +1342,8 @@ Second \"item\" text"</string>
</patch>
<patch id="misc.links.openLinksExternallyPatch">
<string name="revanced_external_browser_title">Адкрываць спасылкі ў браўзеры</string>
<string name="revanced_external_browser_summary_on">Адкрыццё спасылак звонку</string>
<string name="revanced_external_browser_summary_off">Адкрыццё спасылак у праграме</string>
<string name="revanced_external_browser_summary_on">Адкрыццё спасылак у знешнім браўзеры</string>
<string name="revanced_external_browser_summary_off">Адкрыццё спасылак ва ўбудаваным браўзеры</string>
</patch>
<patch id="misc.privacy.removeTrackingQueryParameterPatch">
<string name="revanced_remove_tracking_query_parameter_title">Выдаліць параметр запыту адсочвання</string>
@@ -1340,10 +1356,11 @@ Second \"item\" text"</string>
<string name="revanced_disable_zoom_haptics_summary_off">Тактыльныя сігналы ўключаны</string>
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<string name="revanced_force_original_audio_title">Вымушанае арыгінальнае аўдыё</string>
<string name="revanced_force_original_audio_summary_on">Выкарыстанне арыгінальнага аўдыё</string>
<string name="revanced_force_original_audio_title">Вымушаная арыгінальная мова аўдыё</string>
<string name="revanced_force_original_audio_summary_on">Выкарыстоўваць арыгінальную мову аўдыя</string>
<string name="revanced_force_original_audio_summary_off">Выкарыстанне аўдыё па змаўчанні</string>
<string name="revanced_force_original_audio_not_available">Каб выкарыстоўваць гэтую функцыю, зменіце спафінг патоку на тып кліента iOS</string>
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
<string name="revanced_force_original_audio_not_available">Каб выкарыстоўваць гэту функцыю, змяніце параметр \"Падрабляць відэаструмені\" на iOS TV</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

View File

@@ -168,9 +168,6 @@ Second \"item\" text"</string>
Няма да бъдете уведомени за неочаквани събития."</string>
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<string name="revanced_disable_like_subscribe_glow_title">Деактивиране на светенето на бутон Like и Subscribe</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Бутон Like и Subscribe няма да светят при споменаване</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Бутон Like и Subscribe ще светят при споменаване</string>
<string name="revanced_hide_album_cards_title">\"Карти на албумите\"</string>
<string name="revanced_hide_album_cards_summary_on">Албумните карти са скрити</string>
<string name="revanced_hide_album_cards_summary_off">Албумните карти се показват</string>
@@ -304,13 +301,13 @@ Second \"item\" text"</string>
<string name="revanced_hide_description_components_screen_title">Описание на видеото</string>
<string name="revanced_hide_description_components_screen_summary">Скриване или показване на компонентите за описание на видеоклиповете</string>
<string name="revanced_hide_filter_bar_screen_title">Лента с филтри</string>
<string name="revanced_hide_filter_bar_screen_summary">Скриване или показване на лентата с категории в емисията, резултатите от търсенето и свързаните видеоклипове</string>
<string name="revanced_hide_filter_bar_screen_summary">Скриване или показване на лентата за филтриране в емисията, резултатите от търсенето и свързаните видеоклипове</string>
<string name="revanced_hide_filter_bar_feed_in_feed_title">Скриване на горната лента с категории в емисията</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_on">Скрита</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_off">Показва се</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Филтъри на търсене</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Панелът с филтъри на търсене е скрит</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Панелът с филтъри на търсене се показва</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Скриване в резултатите от търсенето</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Скрито в резултатите от търсенето</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Показано в резултатите от търсенето</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_title">Скриване в сродни видеоклипове</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_on">Скриване в сродни видеоклипове</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_off">Показано в сродни видеоклипове</string>
@@ -407,7 +404,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_self_sponsor_ads_title">Скриване на самоспонсорирани карти</string>
<string name="revanced_hide_self_sponsor_ads_summary_on">Самоспонсорираните карти са скрити</string>
<string name="revanced_hide_self_sponsor_ads_summary_off">Самоспонсорираните карти са показани</string>
<string name="revanced_hide_products_banner_title">Скриване на банера за показване на продукти</string>
<string name="revanced_hide_products_banner_title">Скриване на банера \"Преглед на продукти\"</string>
<string name="revanced_hide_products_banner_summary_on">Банерът е скрит</string>
<string name="revanced_hide_products_banner_summary_off">Банерът е показан</string>
<string name="revanced_hide_end_screen_store_banner_title">Скрий банера за реклама в края на екрана</string>
@@ -446,10 +443,10 @@ Second \"item\" text"</string>
<string name="revanced_share_copy_url_success">Връзката е копирана в клипборда.</string>
<string name="revanced_share_copy_url_timestamp_success">URL адрес с отметка за време, копиран в клипборда.</string>
<string name="revanced_copy_video_url_title">Показване на бутона за копиране на URL адреса на видеоклипа</string>
<string name="revanced_copy_video_url_summary_on">Показан е бутон. Докоснете, за да копирате URL на видеото. Докоснете и задръжте, за да копирате URL адреса на видеоклипа с клеймо за време</string>
<string name="revanced_copy_video_url_summary_on">Бутонът е показан. Докоснете, за да копирате URL адреса на видеоклипа. Докоснете и задръжте, за да копирате с времеви печат</string>
<string name="revanced_copy_video_url_summary_off">Бутонът не е показан</string>
<string name="revanced_copy_video_url_timestamp_title">Показване на бутона за копиране на URL адреса на времевия отпечатък на видеоклипа</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Показан е бутон. Докоснете, за да копирате URL адреса на видеоклипа с клеймо за време. Докоснете и задръжте, за да копирате видеоклип без клеймо за време</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Бутонът е показан. Докоснете, за да копирате URL адреса на видеоклипа с времеви печат. Докоснете и задръжте, за да копирате без времеви печат</string>
<string name="revanced_copy_video_url_timestamp_summary_off">Бутонът не е показан</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
@@ -484,11 +481,15 @@ Second \"item\" text"</string>
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
<string name="revanced_swipe_brightness_title">Задаване на яркост чрез плъзгане</string>
<string name="revanced_swipe_brightness_summary_on">Опцията за превъртане с плъзгане за промяна на яркостта е активирана</string>
<string name="revanced_swipe_brightness_summary_off">Опцията за превъртане с плъзгане за промяна на яркостта е деактивирана</string>
<string name="revanced_swipe_brightness_summary_on">лъзгането за яркост на цял екран е активирано
Регулирайте яркостта, като плъзгате вертикално от лявата страна на екрана"</string>
<string name="revanced_swipe_brightness_summary_off">Плъзгането за яркост на цял екран е деактивирано</string>
<string name="revanced_swipe_volume_title">Настройване на звука чрез плъзгане</string>
<string name="revanced_swipe_volume_summary_on">Обемът чрез плъзване е активен</string>
<string name="revanced_swipe_volume_summary_off">Обемът чрез плъзване е деактивиран</string>
<string name="revanced_swipe_volume_summary_on">"Плъзгането за сила на звука на цял екран е активирано
Регулирайте силата на звука, като плъзнете вертикално от дясната страна на екрана"</string>
<string name="revanced_swipe_volume_summary_off">Плъзгането за сила на звука на цял екран е деактивирано</string>
<string name="revanced_swipe_press_to_engage_title">Активиране на жеста натискане за преместване</string>
<string name="revanced_swipe_press_to_engage_summary_on">Плъзгането чрез натискане е активирано</string>
<string name="revanced_swipe_press_to_engage_summary_off">Плъзгането чрез натискане е деактивирано</string>
@@ -501,16 +502,19 @@ Second \"item\" text"</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_title">Задаване на яркост чрез плъзгане</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_on">Плъзгането надолу до най-ниската стойност на жеста за яркост, за да се активира автоматичната яркост</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_off">Плъзгането надолу до най-ниската стойност на жеста за яркост, без дасе активира автоматичната яркост</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_overlay_text">Авто</string>
<string name="revanced_swipe_overlay_timeout_title">Задръжка на плъзгащата контрола за показване</string>
<string name="revanced_swipe_overlay_timeout_summary">Време за което плъзгащата контрола е видима.</string>
<string name="revanced_swipe_text_overlay_size_title">Размер на текста при плъзгане</string>
<string name="revanced_swipe_text_overlay_size_summary">Размера на текста на плъзгащите контроли</string>
<string name="revanced_swipe_overlay_background_opacity_title">Плъзгане на фона на наслагването непрозрачност</string>
<string name="revanced_swipe_overlay_background_opacity_summary">Стойност на непрозрачността между 0-100</string>
<string name="revanced_swipe_overlay_background_opacity_invalid_toast">Непрозрачността на плъзгането трябва да е между 0-100</string>
<string name="revanced_swipe_threshold_title">Праг на величината на плъзгане</string>
<string name="revanced_swipe_threshold_summary">Праг преди да се осъществи плъзгането</string>
<string name="revanced_swipe_show_circular_overlay_title">Показване на кръгъл овърлей</string>
<string name="revanced_swipe_show_circular_overlay_summary_on">Показва се кръгъл овърлей</string>
<string name="revanced_swipe_show_circular_overlay_summary_off">Показва се хоризонтален овърлей</string>
<string name="revanced_swipe_overlay_minimal_style_title">Активиране на минимален стил</string>
<string name="revanced_swipe_overlay_minimal_style_summary_on">Минималният стил на наслагване е активиран</string>
<string name="revanced_swipe_overlay_minimal_style_summary_off">Минималният стил на овърлея е деактивиран</string>
<string name="revanced_swipe_change_video_title">Включване на превключване на видеото чрез плъзване</string>
<string name="revanced_swipe_change_video_summary_on">Плъзването в режим на цял екран ще превключи към следващото/предишно видео</string>
<string name="revanced_swipe_change_video_summary_off">Плъзването в режим на цял екран няма да превключи към следващото/предишно видео</string>
@@ -523,6 +527,9 @@ Second \"item\" text"</string>
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">Бутони за действия</string>
<string name="revanced_hide_buttons_screen_summary">Скриване или показване на бутони под видеото</string>
<string name="revanced_disable_like_subscribe_glow_title">Деактивиране на светенето на бутон Like и Subscribe</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Бутон Like и Subscribe няма да светят при споменаване</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Бутон Like и Subscribe ще светят при споменаване</string>
<string name="revanced_hide_like_dislike_button_title">Бутони \"Харесвам\" и \"Не харесвам\"</string>
<string name="revanced_hide_like_dislike_button_summary_on">Бутоните \"Харесвам\" и \"Не харесвам\" са скрити</string>
<string name="revanced_hide_like_dislike_button_summary_off">Бутоните \"Харесвам\" и \"Не харесвам\" се показват</string>
@@ -575,12 +582,18 @@ Second \"item\" text"</string>
<string name="revanced_hide_subscriptions_button_title">Абонаменти</string>
<string name="revanced_hide_subscriptions_button_summary_on">Бутона за абонаменти е скрит</string>
<string name="revanced_hide_subscriptions_button_summary_off">Бутона за абонаменти се показва</string>
<string name="revanced_hide_notifications_button_title">Скриване на известията</string>
<string name="revanced_hide_notifications_button_summary_on">Бутонът за известия е скрит</string>
<string name="revanced_hide_notifications_button_summary_off">Бутонът за известия е показан</string>
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_switch_create_with_notifications_button_title">Заменете бутона „Създаване“ с бутона „Известия“</string>
<string name="revanced_switch_create_with_notifications_button_summary_on">"Бутонът за създаване е сменен с бутона Известия
Забележка: Активирането на това също принудително скрива видео рекламите"</string>
<string name="revanced_switch_create_with_notifications_button_summary_off">Бутоните \"Създаване\" и \"Известия\" не са разменени</string>
<string name="revanced_switch_create_with_notifications_button_user_dialog_message">"Деактивирането на тази настройка също ще деактивира блокирането на рекламите за Shorts.
Ако промяната на тази настройка не влезе в сила, опитайте да превключите в режим „инкогнито“."</string>
<string name="revanced_hide_navigation_button_labels_title">Имена на бутоните на лентата за навигация</string>
<string name="revanced_hide_navigation_button_labels_summary_on">Етикетите са скрити</string>
<string name="revanced_hide_navigation_button_labels_summary_off">Етикетите се показват</string>
@@ -650,7 +663,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">Долният колонтитул на менюто за качество на видеото се показва</string>
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<string name="revanced_hide_player_previous_next_buttons_title">Бутони за Предишно &amp; Следващо видео</string>
<string name="revanced_hide_player_previous_next_buttons_title">Скриване на бутоните \"Предишен и Следващ\"</string>
<string name="revanced_hide_player_previous_next_buttons_summary_on">Бутоните са скрити</string>
<string name="revanced_hide_player_previous_next_buttons_summary_off">Бутоните се показват</string>
<string name="revanced_hide_cast_button_title">Скриване на бутона Cast</string>
@@ -795,10 +808,13 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_navigation_bar_summary_on">Навигационната лента е скрита</string>
<string name="revanced_hide_shorts_navigation_bar_summary_off">Навигационната лента се показва</string>
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<string name="revanced_disable_suggested_video_end_screen_title">Препоръчани видеоклипове в края</string>
<string name="revanced_disable_suggested_video_end_screen_summary_on">Препоръчаните видеоклипове в края са скрити</string>
<string name="revanced_disable_suggested_video_end_screen_summary_off">Препоръчаните видеоклипове в края се показват</string>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
<string name="revanced_end_screen_suggested_video_title">Скриване на предложеното видео в края на екрана</string>
<string name="revanced_end_screen_suggested_video_summary_on">"Предложеното видео в края на екрана е скрито, когато автоматичното пускане е изключено
Автоматичното пускане може да бъде променено в настройките на YouTube:
Настройки → Възпроизвеждане → Автоматично пускане на следващото видео"</string>
<string name="revanced_end_screen_suggested_video_summary_off">Предложеното видео в края на екрана е показано</string>
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
<string name="revanced_hide_timestamp_title">Скриване на клеймото за време на видеоклипа</string>
@@ -1179,7 +1195,7 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Минимизиран екран за възпроизвеждане</string>
<string name="revanced_miniplayer_screen_summary">Променете стила на минимизирания екран за възпроизвеждане</string>
<string name="revanced_miniplayer_screen_summary">Промяна на стила на минимизиран плейър в приложението</string>
<string name="revanced_miniplayer_type_title">Минимизиран тип екран за гледане</string>
<string name="revanced_miniplayer_type_entry_0">Деактивирано</string>
<string name="revanced_miniplayer_type_entry_1">По подразбиране</string>
@@ -1325,8 +1341,8 @@ Second \"item\" text"</string>
</patch>
<patch id="misc.links.openLinksExternallyPatch">
<string name="revanced_external_browser_title">Отваряне на връзки в браузъра</string>
<string name="revanced_external_browser_summary_on">Отваряне на външни връзки</string>
<string name="revanced_external_browser_summary_off">Отваряне на връзки в приложението</string>
<string name="revanced_external_browser_summary_on">Отваряне на връзки във външен браузър</string>
<string name="revanced_external_browser_summary_off">Отваряне на връзки във вграден браузър</string>
</patch>
<patch id="misc.privacy.removeTrackingQueryParameterPatch">
<string name="revanced_remove_tracking_query_parameter_title">Премахнете параметъра на заявката за проследяване</string>
@@ -1339,10 +1355,11 @@ Second \"item\" text"</string>
<string name="revanced_disable_zoom_haptics_summary_off">Вибрациите са активирани</string>
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<string name="revanced_force_original_audio_title">Принудително оригинално аудио</string>
<string name="revanced_force_original_audio_summary_on">Използване на оригинално аудио</string>
<string name="revanced_force_original_audio_title">Принудително оригинално аудио език</string>
<string name="revanced_force_original_audio_summary_on">Използване на оригиналния език на аудиото</string>
<string name="revanced_force_original_audio_summary_off">Използване на аудио по подразбиране</string>
<string name="revanced_force_original_audio_not_available">За да използвате тази функция, променете имитацията на поточно предаване на тип клиент на iOS</string>
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
<string name="revanced_force_original_audio_not_available">За да използвате тази функция, сменете „Фалшифициране на видео потоци“ на iOS TV</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

View File

@@ -168,9 +168,6 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
আপনি কোনও অপ্রত্যাশিত ঘটনার বিষয়ে অবহিত হবেন না।"</string>
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<string name="revanced_disable_like_subscribe_glow_title">লাইক এবং সাবস্ক্রাইব বোতাম গ্লো বন্ধ করুন</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">উল্লেখ করলে সক্রিয়করন এবং সাবস্ক্রাইব বোতাম উজ্জ্বল হবে না</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">উল্লেখ করলে সক্রিয়করন এবং সাবস্ক্রাইব বোতাম উজ্জ্বল হবে</string>
<string name="revanced_hide_album_cards_title">অ্যালবাম কার্ড লুকান</string>
<string name="revanced_hide_album_cards_summary_on">অ্যালবাম কার্ড লুকিয়ে রয়েছে</string>
<string name="revanced_hide_album_cards_summary_off">অ্যালবাম কার্ড প্রদর্শিত হয়েছে</string>
@@ -304,13 +301,12 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
<string name="revanced_hide_description_components_screen_title">ভিডিওর বিবরণ</string>
<string name="revanced_hide_description_components_screen_summary">ভিডিও বিবরণ এর উপাদান লুকান বা প্রদর্শন করুন</string>
<string name="revanced_hide_filter_bar_screen_title">ফিল্টার বার</string>
<string name="revanced_hide_filter_bar_screen_summary">ফিড, অনুসন্ধান এবং সম্পর্কিত ভিডিওতে ফিল্টার বার লুকান বা প্রদর্শন করুন</string>
<string name="revanced_hide_filter_bar_feed_in_feed_title">ফিডে লুকান</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_on">ফিডে লুকিয়ে রয়েছে</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_off">ফিডে প্রদর্শিত হয়েছে</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">অনুসন্ধানে লুকান</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">অনুসন্ধানে লুকিয়ে রয়েছে</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">অনুসন্ধানে প্রদর্শিত হয়েছে</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">অনুসন্ধান ফলাফলে লুকান</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">অনুসন্ধান ফলাফলে লুকানো আছে</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">অনুসন্ধান ফলাফলে দেখানো হয়েছে</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_title">সম্পর্কিত ভিডিওতে লুকান</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_on">সম্পর্কিত ভিডিওতে লুকিয়ে রয়েছে</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_off">সম্পর্কিত ভিডিওতে প্রদর্শিত হয়েছে</string>
@@ -407,7 +403,7 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
<string name="revanced_hide_self_sponsor_ads_title">স্ব-স্পন্সর কার্ড লুকান</string>
<string name="revanced_hide_self_sponsor_ads_summary_on">স্ব-স্পন্সর কার্ড লুকিয়ে রয়েছে</string>
<string name="revanced_hide_self_sponsor_ads_summary_off">স্ব-স্পন্সর কার্ড প্রদর্শিত হয়েছে</string>
<string name="revanced_hide_products_banner_title">প্রোডাক্ট দেখার ব্যানার লুকান</string>
<string name="revanced_hide_products_banner_title">\'পণ্য দেখুন\' ব্যানার লুকান</string>
<string name="revanced_hide_products_banner_summary_on">ব্যানার লুকিয়ে রয়েছে</string>
<string name="revanced_hide_products_banner_summary_off">ব্যানার প্রদর্শিত হয়েছে</string>
<string name="revanced_hide_end_screen_store_banner_title">শেষ পর্দার স্টোর ব্যানার লুকান</string>
@@ -446,10 +442,10 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
<string name="revanced_share_copy_url_success">ক্লিপবোর্ডে URL অনুলিপি করা হয়েছে</string>
<string name="revanced_share_copy_url_timestamp_success">টাইমস্ট্যাম্প সহ URL অনুলিপি করা হয়েছে</string>
<string name="revanced_copy_video_url_title">ভিডিও URL অনুলিপি বোতাম দেখান</string>
<string name="revanced_copy_video_url_summary_on">বোতাম প্রদর্শিত হয়েছে। URL অনুলিপি করতে ট্যাপ করুন। টাইমস্ট্যাম্প সহ URL অনুলিপি করতে ট্যাপ করে ধরে রাখুন।</string>
<string name="revanced_copy_video_url_summary_on">বোতামটি দেখানো হয়েছে। ভিডিও URL কপি করতে আলতো চাপুন। টাইমস্ট্যাম্প সহ পি করতে টিপুন এবং ধরে রাখুন।</string>
<string name="revanced_copy_video_url_summary_off">বোতাম প্রদর্শিত হয়নি</string>
<string name="revanced_copy_video_url_timestamp_title">টাইমস্ট্যাম্প URL অনুলিপি বোতাম দেখান</string>
<string name="revanced_copy_video_url_timestamp_summary_on">বোতাম প্রদর্শিত হয়েছে। টাইমস্ট্যাম্প সহ URL অনুলিপি করতে ট্যাপ করুন। টাইমস্ট্যাম্প ছাড়া URL অনুলিপি করতে ট্যাপ করে ধরে রাখুন।</string>
<string name="revanced_copy_video_url_timestamp_summary_on">বোতামটি দেখানো হয়েছে। টাইমস্ট্যাম্প সহ ভিডিও URL কপি করতে আলতো চাপুন। টাইমস্ট্যাম্প ছাড়া পি করতে টিপুন এবং ধরে রাখুন।</string>
<string name="revanced_copy_video_url_timestamp_summary_off">বোতাম প্রদর্শিত হয়নি</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
@@ -484,11 +480,15 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
<string name="revanced_swipe_brightness_title">উজ্জ্বলতার সোয়াইপ অঙ্গভঙ্গি সক্রিয় করুন</string>
<string name="revanced_swipe_brightness_summary_on">উজ্জ্বলতা সোয়াইপ সক্রিয় করা হয়েছে</string>
<string name="revanced_swipe_brightness_summary_off">উজ্জ্বলতা সোয়াইপ নিষ্ক্রিয় করা হয়েছে</string>
<string name="revanced_swipe_brightness_summary_on">"Fullscreen brightness swipe enabled আছে
স্ক্রিনের বাম দিকে উল্লম্বভাবে সোয়াইপ করে উজ্জ্বলতা সামঞ্জস্য করুন"</string>
<string name="revanced_swipe_brightness_summary_off">Fullscreen brightness swipe disabled করা হয়েছে</string>
<string name="revanced_swipe_volume_title">ভলিউম অঙ্গভঙ্গি সক্রিয় করুন</string>
<string name="revanced_swipe_volume_summary_on">ভলিউম সোাইপ সক্রি করা হেছে</string>
<string name="revanced_swipe_volume_summary_off">ভলিউম সোয়াইপ নিষ্ক্রিয় করা হয়েছে</string>
<string name="revanced_swipe_volume_summary_on">"পূর্ণ স্ক্রীন ভলিউম সোয়াইপ সক্রিয় করা হয়েছে
স্ক্রিনের ডান দিকে উল্লম্বভাবে সোয়াইপ করে ভলিউম সামঞ্জস্য করুন"</string>
<string name="revanced_swipe_volume_summary_off">পূর্ণ স্ক্রীন ভলিউম সোয়াইপ নিষ্ক্রিয় করা হয়েছে</string>
<string name="revanced_swipe_press_to_engage_title">প্রেস-টু-সোয়াইপ অঙ্গভঙ্গি সক্রিয় করুন</string>
<string name="revanced_swipe_press_to_engage_summary_on">প্রেস-টু-সোয়াইপ সক্রিয় করা হয়েছে</string>
<string name="revanced_swipe_press_to_engage_summary_off">প্রেস-টু-সোয়াইপ নিষ্ক্রিয় করা হয়েছে</string>
@@ -501,16 +501,19 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
<string name="revanced_swipe_lowest_value_enable_auto_brightness_title">স্বয়ংক্রিয়-উজ্জ্বলতার অঙ্গভঙ্গি সক্রিয় করুন</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_on">উজ্জ্বলতার অঙ্গভঙ্গির সর্বনিম্ন মানে সোয়াইপ ডাউন করলে অটো-উজ্জ্বলতা সক্ষম হয়</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_off">সর্বনিম্ন মানে সোয়াইপ ডাউন করলে অটো-উজ্জ্বলতা সক্ষম হয় না</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_overlay_text">স্বতস্ফূর্তভাবে</string>
<string name="revanced_swipe_overlay_timeout_title">ওভার-লে টাইম আউট</string>
<string name="revanced_swipe_overlay_timeout_summary">কত মিলিসেকেন্ডের জন্য ওভারলে দৃশ্যমান হবে</string>
<string name="revanced_swipe_text_overlay_size_title">সোয়াইপ ওভারলে টেক্সট সাইজ</string>
<string name="revanced_swipe_text_overlay_size_summary">সোয়াইপ ওভারলে এর টেক্সট সাইজ</string>
<string name="revanced_swipe_overlay_background_opacity_title">অস্বচ্ছতা</string>
<string name="revanced_swipe_overlay_background_opacity_summary">0-100 এর মধ্যে অস্বচ্ছতার মান</string>
<string name="revanced_swipe_overlay_background_opacity_invalid_toast">সোয়াইপের অস্বচ্ছতা অবশ্যই 0-100 এর মধ্যে হতে হবে</string>
<string name="revanced_swipe_threshold_title">সোয়াইপ থ্রেশহোল্ড এর মাত্রা</string>
<string name="revanced_swipe_threshold_summary">সোয়াইপ করার থ্রেশহোল্ডের পরিমাণ</string>
<string name="revanced_swipe_show_circular_overlay_title">বৃত্তাকার ওভারলে দেখান</string>
<string name="revanced_swipe_show_circular_overlay_summary_on">বৃত্তাকার ওভারলে দেখানো হয়েছে</string>
<string name="revanced_swipe_show_circular_overlay_summary_off">অনুভূমিক ওভারলে দেখানো হয়েছে</string>
<string name="revanced_swipe_overlay_minimal_style_title">ন্যূনতম শৈলী সক্ষম করুন</string>
<string name="revanced_swipe_overlay_minimal_style_summary_on">Minimal overlay style enabled করা হয়েছে</string>
<string name="revanced_swipe_overlay_minimal_style_summary_off">ন্যূনতম ওভারলে শৈলী নিষ্ক্রিয় করা হয়েছে</string>
<string name="revanced_swipe_change_video_title">ভিডিও পরিবর্তন করতে সোয়াইপ করে সক্ষম করুন</string>
<string name="revanced_swipe_change_video_summary_on">ফুলস্ক্রিন মোডে সোয়াইপ করলে পরবর্তী/পূর্ববর্তী ভিডিওতে পরিবর্তন হবে</string>
<string name="revanced_swipe_change_video_summary_off">ফুলস্ক্রিন মোডে সোয়াইপ করলে পরবর্তী /পূর্ববর্তী ভিডিওতে পরিবর্তন হবে না</string>
@@ -523,6 +526,9 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">অ্যাকশন বোতাম</string>
<string name="revanced_hide_buttons_screen_summary">ভিডিওর নীচে বোতাম লুকানো বা দেখানো</string>
<string name="revanced_disable_like_subscribe_glow_title">লাইক এবং সাবস্ক্রাইব বোতাম গ্লো বন্ধ করুন</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">উল্লেখ করলে সক্রিয়করন এবং সাবস্ক্রাইব বোতাম উজ্জ্বল হবে না</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">উল্লেখ করলে সক্রিয়করন এবং সাবস্ক্রাইব বোতাম উজ্জ্বল হবে</string>
<string name="revanced_hide_like_dislike_button_title">Like এবং Dislike লুকান</string>
<string name="revanced_hide_like_dislike_button_summary_on">Like এবং Dislike বোতাম লুকানো আছে</string>
<string name="revanced_hide_like_dislike_button_summary_off">Like এবং Dislike বোতাম দেখানো হচ্ছে</string>
@@ -581,6 +587,9 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
মনে রাখবেন: এটি সক্রিয় করা ভিডিও বিজ্ঞাপনগুলিও জোর করে লুকিয়ে দেয়"</string>
<string name="revanced_switch_create_with_notifications_button_summary_off">তৈরি বোতামকে বিজ্ঞপ্তি বোতাম দ্বারা সুইচ করা হয়নি</string>
<string name="revanced_switch_create_with_notifications_button_user_dialog_message">"এই সেটিংস নিষ্ক্রিয় করলে Shorts বিজ্ঞাপন ব্লকিংও নিষ্ক্রিয় হয়ে যাবে।
যদি এই সেটিংস পরিবর্তন করার পরে কাজ না করে, তাহলে Incognito মোডে চেষ্টা করুন।"</string>
<string name="revanced_hide_navigation_button_labels_title">নেভিগেশন বোতাম লেবেল লুকান</string>
<string name="revanced_hide_navigation_button_labels_summary_on">লেবেল লুকিয়ে রয়েছে</string>
<string name="revanced_hide_navigation_button_labels_summary_off">লেবেল প্রদর্শিত হয়েছে</string>
@@ -650,7 +659,7 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">ভিডিও গুণমান মেনু ফুটার দেখানো হচ্ছে</string>
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<string name="revanced_hide_player_previous_next_buttons_title">পূর্ববর্তী লুকান &amp; পরবর্তী ভিডিও বোতাম</string>
<string name="revanced_hide_player_previous_next_buttons_title">পূর্ববর্তী লুকান &amp; পরবর্তী বোতাম</string>
<string name="revanced_hide_player_previous_next_buttons_summary_on">বোতাম লুকানো হয়</string>
<string name="revanced_hide_player_previous_next_buttons_summary_off">বোতাম দেখানো হয়</string>
<string name="revanced_hide_cast_button_title">কাস্ট বোতামটি লুকান</string>
@@ -795,10 +804,13 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
<string name="revanced_hide_shorts_navigation_bar_summary_on">নেভিগেশন বার লুকিয়ে রয়েছে</string>
<string name="revanced_hide_shorts_navigation_bar_summary_off">পনেভিগেশন বার প্রদর্শিত হয়েছে</string>
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<string name="revanced_disable_suggested_video_end_screen_title">ভিডিওর শেষ স্ক্রিণে সাজেস্ট করা ভিডিও নিষ্ক্রিয় করুন</string>
<string name="revanced_disable_suggested_video_end_screen_summary_on">সাজেস্ট করা ভিডিও নিস্ক্রিয় করা হবে</string>
<string name="revanced_disable_suggested_video_end_screen_summary_off">সাজেস্ট করা ভিডিও প্রদর্শিত হবে</string>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
<string name="revanced_end_screen_suggested_video_title">শেষ স্ক্রীনে প্রস্তাবিত ভিডিও লুকানো হবে</string>
<string name="revanced_end_screen_suggested_video_summary_on">"অটো প্লে বন্ধ থাকলে শেষ স্ক্রীনে প্রস্তাবিত ভিডিও লুকানো থাকে
YouTube সেটিংসে অটো প্লে পরিবর্তন করা যেতে পারে:
সেটিংস → প্লেব্যাক → অটো প্লে পরবর্তী ভিডিও"</string>
<string name="revanced_end_screen_suggested_video_summary_off">শেষ স্ক্রীনে প্রস্তাবিত ভিডিও দেখানো হয়েছে</string>
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
<string name="revanced_hide_timestamp_title">ভিডিওর সময়স্ট্যাম্প লুকান</string>
@@ -1179,7 +1191,7 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">মিনিপ্লেয়ার</string>
<string name="revanced_miniplayer_screen_summary">অ্যাপের মধ্যকার মিনিমাইজড প্লেয়ার এর ধরণ পরিবর্তন করুন</string>
<string name="revanced_miniplayer_screen_summary">ইন-অ্যাপ মিনিমাইজড প্লেয়ারের শৈলী পরিবর্তন করুন</string>
<string name="revanced_miniplayer_type_title">মিনিপ্লেয়ার ধরণ</string>
<string name="revanced_miniplayer_type_entry_0">নিষ্ক্রিয় হয়েছে</string>
<string name="revanced_miniplayer_type_entry_1">পূর্ব-নির্ধারিত</string>
@@ -1325,8 +1337,8 @@ DeArrow সম্পর্কে আরও জানতে এখানে ট
</patch>
<patch id="misc.links.openLinksExternallyPatch">
<string name="revanced_external_browser_title">লিংক ব্রাউজারে খুলুন</string>
<string name="revanced_external_browser_summary_on">লিংক বাহিরে খুলুন</string>
<string name="revanced_external_browser_summary_off">অ্যাপের মধ্যে লিক খুলছে</string>
<string name="revanced_external_browser_summary_on">বাহ্যিক ব্রাউজারে লিঙ্ক খোলা হচ্ছে</string>
<string name="revanced_external_browser_summary_off">ইন-অ্যাপ ব্রাউজারে লিঙ্ক খোলা হচ্ছে</string>
</patch>
<patch id="misc.privacy.removeTrackingQueryParameterPatch">
<string name="revanced_remove_tracking_query_parameter_title">ট্র্যাকিং করার প্যারামিটার মুছুন</string>
@@ -1339,10 +1351,11 @@ DeArrow সম্পর্কে আরও জানতে এখানে ট
<string name="revanced_disable_zoom_haptics_summary_off">কম্পন সক্রিয় করা হয়েছে</string>
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<string name="revanced_force_original_audio_title">মূল অডিও বলপূর্বক চালু করুন</string>
<string name="revanced_force_original_audio_summary_on">মূল অডিও ব্যবহার করছে</string>
<string name="revanced_force_original_audio_title">মূল অডিও ভাষা বলপূর্বক চালু করুন</string>
<string name="revanced_force_original_audio_summary_on">মূল অডিও ভাষা ব্যবহার করা হচ্ছে</string>
<string name="revanced_force_original_audio_summary_off">ডিফল্ট অডিও ব্যবহার করছে</string>
<string name="revanced_force_original_audio_not_available">এই বৈশিষ্ট্যটি ব্যবহার করার জন্য, iOS ক্লায়েন্ট প্রকারে স্ট্রিম স্পুফিং পরিবর্তন করুন</string>
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
<string name="revanced_force_original_audio_not_available">এই বৈশিষ্ট্যটি ব্যবহার করতে, \'স্পুফ ভিডিও স্ট্রীম\' কে iOS TV-তে পরিবর্তন করুন</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

View File

@@ -130,7 +130,7 @@ Second \"item\" text"</string>
<!-- 'remix' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'share' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
<patch id="misc.zoomhaptics.zoomHapticsPatch">
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

View File

@@ -168,9 +168,6 @@ Toca el botó Continua i permet els canvis d'optimització."</string>
No se t'informarà de cap esdeveniment inesperat."</string>
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<string name="revanced_disable_like_subscribe_glow_title">Desactiva l\'efecte brillant de M\'agrada i Subscriu-te</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Els botons M\'agrada i Subscriu-te no brillaran quan es mencionin</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Els botons M\'agrada i Subscriu-te brillaran quan es mencionin</string>
<string name="revanced_hide_album_cards_title">Amagar les targetes d\'àlbums</string>
<string name="revanced_hide_album_cards_summary_on">Les targetes d\'àlbums estan amagades</string>
<string name="revanced_hide_album_cards_summary_off">Es mostren les targetes d\'àlbum</string>
@@ -304,13 +301,13 @@ No se t'informarà de cap esdeveniment inesperat."</string>
<string name="revanced_hide_description_components_screen_title">Descripció del vídeo</string>
<string name="revanced_hide_description_components_screen_summary">Amaga o mostra els components de descripció del vídeo</string>
<string name="revanced_hide_filter_bar_screen_title">Barra de filtre</string>
<string name="revanced_hide_filter_bar_screen_summary">Mostra o amaga la barra de filtre al feed, la cerca i els vídeos relacionats</string>
<string name="revanced_hide_filter_bar_screen_summary">Amaga o mostra la barra de filtre al canal, als resultats de cerca i als vídeos relacionats</string>
<string name="revanced_hide_filter_bar_feed_in_feed_title">Amaga al feed</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_on">Amagat al feed</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_off">Es mostra al feed</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Amaga a la cerca</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Amagat a la cerca</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Mostrat a la cerca</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Amaga als resultats de cerca</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Amagat als resultats de cerca</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Mostrat als resultats de cerca</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_title">Amaga els vídeos relacionats</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_on">Amagats als vídeos relacionats</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_off">Es mostren els vídeos relacionats</string>
@@ -407,7 +404,7 @@ Aquesta funció només està disponible per a dispositius antics"</string>
<string name="revanced_hide_self_sponsor_ads_title">Amaga les targetes d\'auto patrocini</string>
<string name="revanced_hide_self_sponsor_ads_summary_on">Les targetes d\'autopatrocini estan magades</string>
<string name="revanced_hide_self_sponsor_ads_summary_off">Es mostren les targetes d\'autopatrocini</string>
<string name="revanced_hide_products_banner_title">Amaga el bàner per veure productes</string>
<string name="revanced_hide_products_banner_title">Amaga el bàner «Mostra els productes»</string>
<string name="revanced_hide_products_banner_summary_on">La pancarta s\'amaga</string>
<string name="revanced_hide_products_banner_summary_off">La pancarta es mostra</string>
<string name="revanced_hide_end_screen_store_banner_title">Amaga el banner de la botiga a la pantalla final</string>
@@ -446,10 +443,10 @@ Aquesta funció només està disponible per a dispositius antics"</string>
<string name="revanced_share_copy_url_success">S\'ha copiat l\'URL al porta-retalls</string>
<string name="revanced_share_copy_url_timestamp_success">S\'ha copiat l\'URL amb data i hora</string>
<string name="revanced_copy_video_url_title">Mostra el botó de l\'URL</string>
<string name="revanced_copy_video_url_summary_on">El botó es mostra. Toca per copiar l\'URL del vídeo. Mantén premut per copiar l\'URL del vídeo amb marca de temps</string>
<string name="revanced_copy_video_url_summary_on">Es mostra el botó. Toqueu per copiar l\'URL del vídeo. Toqueu i manteniu premut per copiar-lo amb la marca de temps</string>
<string name="revanced_copy_video_url_summary_off">El botó no es mostra</string>
<string name="revanced_copy_video_url_timestamp_title">Mostra el botó per copiar l\'URL amb marca de temps</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Es mostra el botó. Toqueu per copiar l\'URL del vídeo amb segell de temps. Toqueu i manteniu premut per copiar el vídeo sense segell de temps</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Es mostra el botó. Toqueu per copiar l\'URL del vídeo amb la marca de temps. Toqueu i manteniu premut per copiar-lo sense la marca de temps</string>
<string name="revanced_copy_video_url_timestamp_summary_off">No es mostra el botó</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
@@ -484,11 +481,15 @@ Aquesta funció només està disponible per a dispositius antics"</string>
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
<string name="revanced_swipe_brightness_title">Habilita el control de brillo por gesto</string>
<string name="revanced_swipe_brightness_summary_on">El control lliscant de brillantor està habilitat</string>
<string name="revanced_swipe_brightness_summary_off">El control lliscant de brillantor està inhabilitat</string>
<string name="revanced_swipe_brightness_summary_on">"S'ha activat el lliscament de la brillantor a pantalla completa
Ajusteu la brillantor lliscant verticalment a la part esquerra de la pantalla"</string>
<string name="revanced_swipe_brightness_summary_off">S\'ha desactivat el lliscament de la brillantor a pantalla completa</string>
<string name="revanced_swipe_volume_title">Habilita el control de volumen por gesto</string>
<string name="revanced_swipe_volume_summary_on">Actiu el canvi de volum amb gestos</string>
<string name="revanced_swipe_volume_summary_off">Desactivat el canvi de volum amb gestos</string>
<string name="revanced_swipe_volume_summary_on">"Lliscar el dit a pantalla completa per al volum està activat
Ajusteu el volum lliscant verticalment a la part dreta de la pantalla"</string>
<string name="revanced_swipe_volume_summary_off">Lliscar el dit a pantalla completa per al volum està desactivat</string>
<string name="revanced_swipe_press_to_engage_title">Activa el gest de polsar per lliscar</string>
<string name="revanced_swipe_press_to_engage_summary_on">Activat el gest de prémer per lliscar</string>
<string name="revanced_swipe_press_to_engage_summary_off">Desactivat el gest de prémer per lliscar</string>
@@ -501,16 +502,19 @@ Aquesta funció només està disponible per a dispositius antics"</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_title">Activa el gest de la brillantor automàtica</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_on">Deslizar hacia abajo hasta el valor más bajo del gesto de brillo activa el brillo automático</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_off">Deslizar hacia abajo hasta el valor más bajo no activa el brillo automático</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_overlay_text">Automàtic</string>
<string name="revanced_swipe_overlay_timeout_title">Temps límite de superposició de lliscament</string>
<string name="revanced_swipe_overlay_timeout_summary">La quantitat de mil·lisegons que la superposició és visible</string>
<string name="revanced_swipe_text_overlay_size_title">Mida del text de la superposició lliscant</string>
<string name="revanced_swipe_text_overlay_size_summary">La mida del text per a la superposició lliscant</string>
<string name="revanced_swipe_overlay_background_opacity_title">Opacitat del fons de la superposició de lliscament</string>
<string name="revanced_swipe_overlay_background_opacity_summary">Valor d\'opacitat entre 0 i 100</string>
<string name="revanced_swipe_overlay_background_opacity_invalid_toast">L\'opacitat de lliscament ha d\'estar entre 0 i 100</string>
<string name="revanced_swipe_threshold_title">Llindar de magnitud de lliscament</string>
<string name="revanced_swipe_threshold_summary">La quantitat de llindar per a què es produeixi el desplaçament</string>
<string name="revanced_swipe_show_circular_overlay_title">Mostra la superposició circular</string>
<string name="revanced_swipe_show_circular_overlay_summary_on">Es mostra la superposició circular</string>
<string name="revanced_swipe_show_circular_overlay_summary_off">Es mostra la superposició horitzontal</string>
<string name="revanced_swipe_overlay_minimal_style_title">Activa l\'estil minimalista</string>
<string name="revanced_swipe_overlay_minimal_style_summary_on">S\'ha activat l\'estil de superposició minimalista</string>
<string name="revanced_swipe_overlay_minimal_style_summary_off">L\'estil de superposició mínima està desactivat</string>
<string name="revanced_swipe_change_video_title">Activa la funció de lliscament per canviar vídeos</string>
<string name="revanced_swipe_change_video_summary_on">Lliscar en mode de pantalla completa canviarà al vídeo següent/anterior</string>
<string name="revanced_swipe_change_video_summary_off">Lliscar en mode de pantalla completa no canviarà al vídeo següent/anterior</string>
@@ -523,6 +527,9 @@ Aquesta funció només està disponible per a dispositius antics"</string>
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">Botons d\'acció</string>
<string name="revanced_hide_buttons_screen_summary">Amaga o mostra botons sota els vídeos</string>
<string name="revanced_disable_like_subscribe_glow_title">Desactiva l\'efecte brillant de M\'agrada i Subscriu-te</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Els botons M\'agrada i Subscriu-te no brillaran quan es mencionin</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Els botons M\'agrada i Subscriu-te brillaran quan es mencionin</string>
<string name="revanced_hide_like_dislike_button_title">Amaga M\'agrada i No m\'agrada</string>
<string name="revanced_hide_like_dislike_button_summary_on">Els botons M\'agrada i No m\'agrada estan ocults</string>
<string name="revanced_hide_like_dislike_button_summary_off">Els botons M\'agrada i No m\'agrada es mostren</string>
@@ -575,12 +582,18 @@ Aquesta funció només està disponible per a dispositius antics"</string>
<string name="revanced_hide_subscriptions_button_title">Amaga les subscripcions</string>
<string name="revanced_hide_subscriptions_button_summary_on">El botó de subscripcions està ocult</string>
<string name="revanced_hide_subscriptions_button_summary_off">El botó de subscripcions es mostra</string>
<string name="revanced_hide_notifications_button_title">Amaga les notificacions</string>
<string name="revanced_hide_notifications_button_summary_on">El botó de notificacions està amagat</string>
<string name="revanced_hide_notifications_button_summary_off">El botó de notificacions es mostra</string>
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_switch_create_with_notifications_button_title">Canvia Crea amb notificacions</string>
<string name="revanced_switch_create_with_notifications_button_summary_on">"El botó Crea es canvia pel botó Notificacions
Nota: si actives aquesta opció, també s'amaguen els anuncis de vídeo per força"</string>
<string name="revanced_switch_create_with_notifications_button_summary_off">El botó Crear no s\'intercanvia amb el botó Notificacions</string>
<string name="revanced_switch_create_with_notifications_button_user_dialog_message">"Desactivar aquesta opció també desactivarà el bloqueig d'anuncis de Shorts.
Si canviar aquesta opció no té cap efecte, prova a canviar al mode d'incògnit."</string>
<string name="revanced_hide_navigation_button_labels_title">Amagueu les etiquetes dels botons de navegació</string>
<string name="revanced_hide_navigation_button_labels_summary_on">Les etiquetes estan amagades</string>
<string name="revanced_hide_navigation_button_labels_summary_off">Les etiquetes es mostren</string>
@@ -650,7 +663,7 @@ Nota: si actives aquesta opció, també s'amaguen els anuncis de vídeo per for
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">La part inferior del menú de qualitat del vídeo es mostra</string>
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<string name="revanced_hide_player_previous_next_buttons_title">Amaga els botons de vídeo anteriors i següents</string>
<string name="revanced_hide_player_previous_next_buttons_title">Amaga els botons Anterior i següent</string>
<string name="revanced_hide_player_previous_next_buttons_summary_on">Els botons estan amagats</string>
<string name="revanced_hide_player_previous_next_buttons_summary_off">Els botons es mostren</string>
<string name="revanced_hide_cast_button_title">Amaga el botó Emet</string>
@@ -795,10 +808,13 @@ Nota: si actives aquesta opció, també s'amaguen els anuncis de vídeo per for
<string name="revanced_hide_shorts_navigation_bar_summary_on">La barra de navegació està oculta</string>
<string name="revanced_hide_shorts_navigation_bar_summary_off">La barra de navegació està visible</string>
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<string name="revanced_disable_suggested_video_end_screen_title">Deshabilitar pantalla final amb vídeos suggerits</string>
<string name="revanced_disable_suggested_video_end_screen_summary_on">Els vídeos suggerits estaran desactivats</string>
<string name="revanced_disable_suggested_video_end_screen_summary_off">Els vídeos suggerits estaran visibles</string>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
<string name="revanced_end_screen_suggested_video_title">Amaga el vídeo suggerit de la pantalla final</string>
<string name="revanced_end_screen_suggested_video_summary_on">"El vídeo suggerit de la pantalla final s'amaga quan la reproducció automàtica està desactivada
La reproducció automàtica es pot canviar a la configuració de YouTube:
Configuració → Reproducció → Reprodueix el vídeo següent automàticament"</string>
<string name="revanced_end_screen_suggested_video_summary_off">Es mostra el vídeo suggerit de la pantalla final</string>
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
<string name="revanced_hide_timestamp_title">Amagar segell de temps del vídeo</string>
@@ -1324,8 +1340,8 @@ Si actives aquesta opció, es poden desbloquejar qualitats de vídeo més altes"
</patch>
<patch id="misc.links.openLinksExternallyPatch">
<string name="revanced_external_browser_title">Obri els enllaços al navegador</string>
<string name="revanced_external_browser_summary_on">Obrir els enllaços externament</string>
<string name="revanced_external_browser_summary_off">Obrir els enllaços a l\'aplicació</string>
<string name="revanced_external_browser_summary_on">Obrint enllaços en un navegador extern</string>
<string name="revanced_external_browser_summary_off">Obrint enllaços en un navegador integrat a l\'aplicació</string>
</patch>
<patch id="misc.privacy.removeTrackingQueryParameterPatch">
<string name="revanced_remove_tracking_query_parameter_title">Elimina el paràmetre de consulta de seguiment</string>
@@ -1338,10 +1354,11 @@ Si actives aquesta opció, es poden desbloquejar qualitats de vídeo més altes"
<string name="revanced_disable_zoom_haptics_summary_off">Els hàptics estan habilitats</string>
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<string name="revanced_force_original_audio_title">Forçar àudio original</string>
<string name="revanced_force_original_audio_summary_on">Utilitzant àudio original</string>
<string name="revanced_force_original_audio_title">Forçar l\'idioma d\'àudio original</string>
<string name="revanced_force_original_audio_summary_on">S\'utilitza l\'idioma d\'àudio original</string>
<string name="revanced_force_original_audio_summary_off">Utilitzant àudio predeterminat</string>
<string name="revanced_force_original_audio_not_available">Per utilitzar aquesta funció, canvia la suplantació de flux al tipus de client iOS</string>
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
<string name="revanced_force_original_audio_not_available">Per utilitzar aquesta funció, canvieu \"Suplantació de fluxos de vídeo\" a iOS TV</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

View File

@@ -168,9 +168,6 @@ Klepněte na tlačítko Pokračovat a povolte změny optimalizace."</string>
Nebudete informováni o žádné neočekávané události."</string>
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<string name="revanced_disable_like_subscribe_glow_title">Deaktivovat zvýraznění tlačítek Like a Subscribe</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Tlačítka Like a Subscribe po zmínce nebudou zvýrazněna</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Tlačítka Like a Subscribe po zmínce budou zvýrazněna</string>
<string name="revanced_hide_album_cards_title">Skrýt karty alb</string>
<string name="revanced_hide_album_cards_summary_on">Karty alb jsou skryté</string>
<string name="revanced_hide_album_cards_summary_off">Karty alb jsou zobrazeny</string>
@@ -304,13 +301,13 @@ Nebudete informováni o žádné neočekávané události."</string>
<string name="revanced_hide_description_components_screen_title">Popis videa</string>
<string name="revanced_hide_description_components_screen_summary">Skrýt nebo zobrazit komponenty popisu videa</string>
<string name="revanced_hide_filter_bar_screen_title">Lišta filtrů</string>
<string name="revanced_hide_filter_bar_screen_summary">Skrýt nebo zobrazit lištu filtrů ve feedu, vyhledání a souvisejících videích</string>
<string name="revanced_hide_filter_bar_screen_summary">Skrýt nebo zobrazit lištu filtrů v kanálu, výsledcích hledání a souvisejících videích</string>
<string name="revanced_hide_filter_bar_feed_in_feed_title">Skrýt ve feedu</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_on">Ve feedu skryto</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_off">Ve feedu zobrazeno</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Skrýt ve vyhledávání</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Ve vyhledávání skryto</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Ve vyhledávání zobrazeno</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Skrýt ve výsledcích vyhledávání</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Skryto ve výsledcích vyhledávání</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Zobrazeno ve výsledcích vyhledávání</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_title">Skrýt v souvisejících videích</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_on">V souvisejících videích skryto</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_off">V souvisejících videích zobrazeno</string>
@@ -407,7 +404,7 @@ Tato funkce je dostupná pouze pro starší zařízení"</string>
<string name="revanced_hide_self_sponsor_ads_title">Skrýt karty se sponzorovanými produkty</string>
<string name="revanced_hide_self_sponsor_ads_summary_on">Karty se sponzorovanými produkty jsou skryty</string>
<string name="revanced_hide_self_sponsor_ads_summary_off">Karty se sponzorovanými produkty jsou zobrazeny</string>
<string name="revanced_hide_products_banner_title">Skrýt banner pro prohlížení produktů</string>
<string name="revanced_hide_products_banner_title">Skrýt banner „Zobrazit produkty“</string>
<string name="revanced_hide_products_banner_summary_on">Banner je skryt</string>
<string name="revanced_hide_products_banner_summary_off">Banner je zobrazen</string>
<string name="revanced_hide_end_screen_store_banner_title">Skrýt koncový banner obchodu</string>
@@ -446,10 +443,10 @@ Tato funkce je dostupná pouze pro starší zařízení"</string>
<string name="revanced_share_copy_url_success">URL zkopírováno do schránky</string>
<string name="revanced_share_copy_url_timestamp_success">Adresa URL s časovým razítkem zkopírována</string>
<string name="revanced_copy_video_url_title">Zobrazit tlačítko pro kopírování adresy URL videa</string>
<string name="revanced_copy_video_url_summary_on">Tlačítko je zobrazeno. Klepnutím zkopírujete adresu URL videa. Klepnutím a podržením zkopírujete adresu URL videa s časovým razítkem</string>
<string name="revanced_copy_video_url_summary_on">Zobrazí se tlačítko. Klepnutím zkopírujete URL videa. Klepnutím a podržením zkopírujete s časovou značkou</string>
<string name="revanced_copy_video_url_summary_off">Tlačítko se nezobrazuje</string>
<string name="revanced_copy_video_url_timestamp_title">Zobrazit tlačítko pro kopírování adresy URL videa s časovým razítkem</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Tlačítko je zobrazeno. Klepnutím zkopírujete adresu URL videa s časovým razítkem. Klepnutím a podržením zkopírujete adresu URL videa bez časového razítka</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Zobrazí se tlačítko. Klepnutím zkopírujete URL videa s časovou značkou. Klepnutím a podržením zkopírujete bez časové značky</string>
<string name="revanced_copy_video_url_timestamp_summary_off">Tlačítko se nezobrazuje</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
@@ -484,11 +481,15 @@ Tato funkce je dostupná pouze pro starší zařízení"</string>
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
<string name="revanced_swipe_brightness_title">Povolit gesto pro jas</string>
<string name="revanced_swipe_brightness_summary_on">Přejetí pro jas je povoleno</string>
<string name="revanced_swipe_brightness_summary_off">Přejetí pro jas je zakázáno</string>
<string name="revanced_swipe_brightness_summary_on">"Potažení jasu na celou obrazovku je povoleno
Upravte jas přejetím svisle po levé straně obrazovky"</string>
<string name="revanced_swipe_brightness_summary_off">Potažení jasu na celou obrazovku je zakázáno</string>
<string name="revanced_swipe_volume_title">Povolit gesto pro hlasitost</string>
<string name="revanced_swipe_volume_summary_on">Posuvník hlasitosti je povolen</string>
<string name="revanced_swipe_volume_summary_off">Posuvník hlasitosti je zakázán</string>
<string name="revanced_swipe_volume_summary_on">"Přejetím prstem na celou obrazovku je povoleno
Hlasitost se upravuje svislým přejetím po pravé straně obrazovky"</string>
<string name="revanced_swipe_volume_summary_off">Přejetí prstem na celou obrazovku je zakázáno</string>
<string name="revanced_swipe_press_to_engage_title">Povolit gesto stisknutí pro přejetí</string>
<string name="revanced_swipe_press_to_engage_summary_on">Stisknutí pro přejetí je povoleno</string>
<string name="revanced_swipe_press_to_engage_summary_off">Stisknutí pro přejetí je zakázáno</string>
@@ -501,16 +502,19 @@ Tato funkce je dostupná pouze pro starší zařízení"</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_title">Povolit gesto pro automatický jas</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_on">Přejetím dolů na nejnižší hodnotu gesta pro jas aktivujete automatický jas</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_off">Přejetím dolů na nejnižší hodnotu neaktivujete automatický jas</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_overlay_text">Automat</string>
<string name="revanced_swipe_overlay_timeout_title">Timeout překrytí gesta</string>
<string name="revanced_swipe_overlay_timeout_summary">Doba v milisekundách, po kterou je překrytí viditelné</string>
<string name="revanced_swipe_text_overlay_size_title">Velikost textu překrytí gesta</string>
<string name="revanced_swipe_text_overlay_size_summary">Velikost textu pro překrytí gesta</string>
<string name="revanced_swipe_overlay_background_opacity_title">Průsvitnost pozadí překrytí tažením</string>
<string name="revanced_swipe_overlay_background_opacity_summary">Hodnota průsvitnosti mezi 0-100</string>
<string name="revanced_swipe_overlay_background_opacity_invalid_toast">Průsvitnost tažení musí být mezi 0-100</string>
<string name="revanced_swipe_threshold_title">Práh vynucení gesta</string>
<string name="revanced_swipe_threshold_summary">Velikost prahu pro provedení gesta</string>
<string name="revanced_swipe_show_circular_overlay_title">Zobrazit kruhovou překryvnou vrstvu</string>
<string name="revanced_swipe_show_circular_overlay_summary_on">Zobrazuje se kruhová překryvná vrstva</string>
<string name="revanced_swipe_show_circular_overlay_summary_off">Zobrazuje se vodorovná překryvná vrstva</string>
<string name="revanced_swipe_overlay_minimal_style_title">Povolit minimální styl</string>
<string name="revanced_swipe_overlay_minimal_style_summary_on">Minimální styl překrytí je povolen</string>
<string name="revanced_swipe_overlay_minimal_style_summary_off">Minimální styl překryvné vrstvy je zakázán</string>
<string name="revanced_swipe_change_video_title">Povolit přejetí prstem pro změnu videa</string>
<string name="revanced_swipe_change_video_summary_on">Přejetí prstem v režimu celé obrazovky změní video na další/předchozí</string>
<string name="revanced_swipe_change_video_summary_off">Přejetí prstem v režimu celé obrazovky nebude video měnit na další/předchozí</string>
@@ -523,6 +527,9 @@ Tato funkce je dostupná pouze pro starší zařízení"</string>
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">Akční tlačítka</string>
<string name="revanced_hide_buttons_screen_summary">Skrýt nebo zobrazit tlačítka pod videi</string>
<string name="revanced_disable_like_subscribe_glow_title">Deaktivovat zvýraznění tlačítek Like a Subscribe</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Tlačítka Like a Subscribe po zmínce nebudou zvýrazněna</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Tlačítka Like a Subscribe po zmínce budou zvýrazněna</string>
<string name="revanced_hide_like_dislike_button_title">Skrýt Like a Dislike</string>
<string name="revanced_hide_like_dislike_button_summary_on">Tlačítka Like a Dislike jsou skryta</string>
<string name="revanced_hide_like_dislike_button_summary_off">Tlačítka Like a Dislike jsou zobrazena</string>
@@ -575,12 +582,18 @@ Tato funkce je dostupná pouze pro starší zařízení"</string>
<string name="revanced_hide_subscriptions_button_title">Skrýt Odběry</string>
<string name="revanced_hide_subscriptions_button_summary_on">Tlačítko Odběry je skryto</string>
<string name="revanced_hide_subscriptions_button_summary_off">Tlačítko Odběry je zobrazeno</string>
<string name="revanced_hide_notifications_button_title">Skrýt oznámení</string>
<string name="revanced_hide_notifications_button_summary_on">Tlačítko oznámení je skryto</string>
<string name="revanced_hide_notifications_button_summary_off">Tlačítko oznámení je zobrazeno</string>
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_switch_create_with_notifications_button_title">Zaměnit Vytvořit s Oznámeními</string>
<string name="revanced_switch_create_with_notifications_button_summary_on">"Tlačítko Vytvořit se přepne s tlačítkem Oznámení
Poznámka: Povolení této funkce také vynuceně skryje video reklamy"</string>
<string name="revanced_switch_create_with_notifications_button_summary_off">Tlačítko Vytvořit není zaměněno s tlačítkem Oznámení</string>
<string name="revanced_switch_create_with_notifications_button_user_dialog_message">"Zakázáním tohoto nastavení také zakážete blokování reklam u položek Shorts.
Pokud změna tohoto nastavení nemá žádný účinek, zkuste přepnout do režimu anonymního prohlížení."</string>
<string name="revanced_hide_navigation_button_labels_title">Skrýt štítky navigačních tlačítek</string>
<string name="revanced_hide_navigation_button_labels_summary_on">Štítky jsou skryty</string>
<string name="revanced_hide_navigation_button_labels_summary_off">Štítky jsou zobrazeny</string>
@@ -650,7 +663,7 @@ Poznámka: Povolení této funkce také vynuceně skryje video reklamy"</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">Zápatí menu kvality videa je zobrazeno</string>
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<string name="revanced_hide_player_previous_next_buttons_title">Skrýt tlačítka pro předchozí a další video</string>
<string name="revanced_hide_player_previous_next_buttons_title">Skrýt tlačítka Předchozí a Další</string>
<string name="revanced_hide_player_previous_next_buttons_summary_on">Tlačítka jsou skryta</string>
<string name="revanced_hide_player_previous_next_buttons_summary_off">Tlačítka jsou zobrazena</string>
<string name="revanced_hide_cast_button_title">Skrýt tlačítko Odeslat</string>
@@ -795,10 +808,13 @@ Poznámka: Povolení této funkce také vynuceně skryje video reklamy"</string>
<string name="revanced_hide_shorts_navigation_bar_summary_on">Navigační panel je skrytý</string>
<string name="revanced_hide_shorts_navigation_bar_summary_off">Navigační panel je zobrazen</string>
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<string name="revanced_disable_suggested_video_end_screen_title">Zakázat koncovou obrazovku s doporučenými videi</string>
<string name="revanced_disable_suggested_video_end_screen_summary_on">Doporučená videa budou zakázána</string>
<string name="revanced_disable_suggested_video_end_screen_summary_off">Doporučená videa budou zobrazena</string>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
<string name="revanced_end_screen_suggested_video_title">Skrýt navrhované video na konci obrazovky</string>
<string name="revanced_end_screen_suggested_video_summary_on">"Navrhované video na konci obrazovky je skryté, když je automatické přehrávání vypnuté.
Automatické přehrávání lze změnit v nastavení YouTube:
Nastavení → Přehrávání → Automatické přehrávání dalšího videa"</string>
<string name="revanced_end_screen_suggested_video_summary_off">Navrhované video na konci obrazovky se zobrazuje</string>
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
<string name="revanced_hide_timestamp_title">Skrýt čas videa</string>
@@ -1324,8 +1340,8 @@ Povolením této funkce lze odemknout vyšší kvality videa"</string>
</patch>
<patch id="misc.links.openLinksExternallyPatch">
<string name="revanced_external_browser_title">Otevírat odkazy v prohlížeči</string>
<string name="revanced_external_browser_summary_on">Otevírání odkazů externě</string>
<string name="revanced_external_browser_summary_off">Otevírání odkazů v aplikaci</string>
<string name="revanced_external_browser_summary_on">Otevírání odkazů v externím prohlížeči</string>
<string name="revanced_external_browser_summary_off">Otevírání odkazů v prohlížeči v aplikaci</string>
</patch>
<patch id="misc.privacy.removeTrackingQueryParameterPatch">
<string name="revanced_remove_tracking_query_parameter_title">Odstranit sledovací parametr dotazu</string>
@@ -1338,10 +1354,11 @@ Povolením této funkce lze odemknout vyšší kvality videa"</string>
<string name="revanced_disable_zoom_haptics_summary_off">Haptika je povolena</string>
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<string name="revanced_force_original_audio_title">Vynutit původní zvuk</string>
<string name="revanced_force_original_audio_summary_on">Používání původního zvuku</string>
<string name="revanced_force_original_audio_title">Vynutit původní jazyk zvuku</string>
<string name="revanced_force_original_audio_summary_on">Použít původní jazyk zvuku</string>
<string name="revanced_force_original_audio_summary_off">Používání výchozího zvuku</string>
<string name="revanced_force_original_audio_not_available">Pro použití této funkce změňte typ klienta streamu na iOS</string>
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
<string name="revanced_force_original_audio_not_available">Chcete-li používat tuto funkci, změňte možnost „Zfalšovat datové proudy videa“ na iOS TV</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

View File

@@ -168,8 +168,6 @@ Tap på knappen Fortsæt, og tillad optimeringsændringer."</string>
Du modtager ikke notifikationer om uventede hændelser."</string>
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<string name="revanced_disable_like_subscribe_glow_summary_on">Lykke- og abonnér-knappen gløder ikke, når den nævnes</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Lykke- og abonnér-knappen gløder, når den nævnes</string>
<string name="revanced_hide_album_cards_title">Skjul albumkort</string>
<string name="revanced_hide_album_cards_summary_on">Albumkort er skjult</string>
<string name="revanced_hide_album_cards_summary_off">Albumkort vises</string>
@@ -280,13 +278,13 @@ Du modtager ikke notifikationer om uventede hændelser."</string>
<string name="revanced_hide_description_components_screen_title">Video beskrivelse</string>
<string name="revanced_hide_description_components_screen_summary">Skjul eller vis komponenter til videobeskrivelse</string>
<string name="revanced_hide_filter_bar_screen_title">Filtrer bjælke</string>
<string name="revanced_hide_filter_bar_screen_summary">Skjul eller vis filterbjælken i feedet, søg og relaterede videoer</string>
<string name="revanced_hide_filter_bar_screen_summary">Skjul eller vis filterlinjen i feedet, søgeresultaterne og relaterede videoer</string>
<string name="revanced_hide_filter_bar_feed_in_feed_title">Skjul i feed</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_on">Skjult i feed</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_off">Vist i feed</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Skjul i søgning</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Skjult i søgning</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Vist i søgning</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Skjul i søgeresultater</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Skjult i søgeresultater</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Vises i søgeresultater</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_title">Skjul i relaterede videoer</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_on">Skjult i relaterede videoer</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_off">Vist i relaterede videoer</string>
@@ -374,7 +372,7 @@ Denne funktion er kun tilgængelig for ældre enheder"</string>
<string name="revanced_hide_self_sponsor_ads_title">Skjul selvsponsorerede kort</string>
<string name="revanced_hide_self_sponsor_ads_summary_on">Selvsponsorerede kort er skjult</string>
<string name="revanced_hide_self_sponsor_ads_summary_off">Selvsponsorerede kort vises</string>
<string name="revanced_hide_products_banner_title">Skjul banner for at se produkter</string>
<string name="revanced_hide_products_banner_title">Skjul banneret \"Se produkter\"</string>
<string name="revanced_hide_products_banner_summary_on">Banner er skjult</string>
<string name="revanced_hide_products_banner_summary_off">Banner er vist</string>
<string name="revanced_hide_end_screen_store_banner_title">Skjul banner fra butikken på slutskærmen</string>
@@ -409,10 +407,10 @@ Denne funktion er kun tilgængelig for ældre enheder"</string>
<string name="revanced_share_copy_url_success">URL kopieret til udklipsholder</string>
<string name="revanced_share_copy_url_timestamp_success">URL med tidsstempel kopieret</string>
<string name="revanced_copy_video_url_title">Vis kopiér video URL knap</string>
<string name="revanced_copy_video_url_summary_on">Knap vises. Tryk for at kopiere video URL. Tryk og hold for at kopiere video URL med tidsstempel</string>
<string name="revanced_copy_video_url_summary_on">Knappen vises. Tryk for at kopiere videoens URL. Tryk og hold for at kopiere med tidsstempel</string>
<string name="revanced_copy_video_url_summary_off">Knap vises ikke</string>
<string name="revanced_copy_video_url_timestamp_title">Vis kopi tidsstempel URL knap</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Knap vises. Tryk for at kopiere video URL med tidsstempel. Tryk og hold for at kopiere video uden tidsstempel</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Knappen vises. Tryk for at kopiere videoens URL med tidsstempel. Tryk og hold for at kopiere uden tidsstempel</string>
<string name="revanced_copy_video_url_timestamp_summary_off">Knap vises ikke</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
@@ -445,11 +443,15 @@ Denne funktion er kun tilgængelig for ældre enheder"</string>
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
<string name="revanced_swipe_brightness_title">Aktivér lysstyrke-bevægelse</string>
<string name="revanced_swipe_brightness_summary_on">Strøg med lysstyrke er aktiveret</string>
<string name="revanced_swipe_brightness_summary_off">Stryg for lysstyrke er deaktiveret</string>
<string name="revanced_swipe_brightness_summary_on">"Fuldskaermens lysstyrke-swipe er aktiveret
Juster lysstyrken ved at swipe lodret i venstre side af skærmen"</string>
<string name="revanced_swipe_brightness_summary_off">Fuldskaermens lysstyrke-swipe er deaktiveret</string>
<string name="revanced_swipe_volume_title">Aktiver lydstyrke-bevægelse</string>
<string name="revanced_swipe_volume_summary_on">Stryg på lydstyrke er aktiveret</string>
<string name="revanced_swipe_volume_summary_off">Stryg på lydstyrke er deaktiveret</string>
<string name="revanced_swipe_volume_summary_on">"Fuldskærmslydstyrkesvip er aktiveret
Juster lydstyrken ved at swipe lodret i højre side af skærmen"</string>
<string name="revanced_swipe_volume_summary_off">Fuldskærmslydstyrkesvip er deaktiveret</string>
<string name="revanced_swipe_press_to_engage_title">Aktivér tryk-til-stryg bevægelse</string>
<string name="revanced_swipe_press_to_engage_summary_on">Press-to-swipe er aktiveret</string>
<string name="revanced_swipe_press_to_engage_summary_off">Press-to-swipe er deaktiveret</string>
@@ -462,16 +464,19 @@ Denne funktion er kun tilgængelig for ældre enheder"</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_title">Aktivér auto-lysstyrke-bevægelse</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_on">Stryg ned til den laveste værdi af lysstyrke-bevægelsen aktiverer auto-lysstyrke</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_off">Stryg ned til den laveste værdi aktiverer ikke auto-lysstyrke</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_overlay_text">Automatisk</string>
<string name="revanced_swipe_overlay_timeout_title">Stryg overlay timeout</string>
<string name="revanced_swipe_overlay_timeout_summary">Mængden af millisekunder, overlayet er synlig</string>
<string name="revanced_swipe_text_overlay_size_title">Stryg overlay tekststørrelse</string>
<string name="revanced_swipe_text_overlay_size_summary">Tekststørrelsen for strygeoverlay</string>
<string name="revanced_swipe_overlay_background_opacity_title">Baggrundsgennemsigtighed for swipe-overlay</string>
<string name="revanced_swipe_overlay_background_opacity_summary">Gennemsigtighedsværdi mellem 0-100</string>
<string name="revanced_swipe_overlay_background_opacity_invalid_toast">Gennemsigtighed for swipe skal være mellem 0-100</string>
<string name="revanced_swipe_threshold_title">Stryg størrelse tærskel</string>
<string name="revanced_swipe_threshold_summary">Beløbet for tærskelværdi for stryg der skal ske</string>
<string name="revanced_swipe_show_circular_overlay_title">Vis cirkulært overlejring</string>
<string name="revanced_swipe_show_circular_overlay_summary_on">Cirkulært overlejring vises</string>
<string name="revanced_swipe_show_circular_overlay_summary_off">Horisontalt overlejring vises</string>
<string name="revanced_swipe_overlay_minimal_style_title">Aktiver minimal stil</string>
<string name="revanced_swipe_overlay_minimal_style_summary_on">Minimal overlay-stil er aktiveret</string>
<string name="revanced_swipe_overlay_minimal_style_summary_off">Minimal overlejringsstil er deaktiveret</string>
<string name="revanced_swipe_change_video_title">Aktivér swipe for at skifte videoer</string>
<string name="revanced_swipe_change_video_summary_on">Strygning i fuldskærmstilstand vil ændre til den næste/forrige video</string>
<string name="revanced_swipe_change_video_summary_off">Strygning i fuldskærmstilstand vil ikke ændre til den næste/forrige video</string>
@@ -484,6 +489,8 @@ Denne funktion er kun tilgængelig for ældre enheder"</string>
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">Handlingsknapper</string>
<string name="revanced_hide_buttons_screen_summary">Skjul eller vis knapper under videoer</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Lykke- og abonnér-knappen gløder ikke, når den nævnes</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Lykke- og abonnér-knappen gløder, når den nævnes</string>
<string name="revanced_hide_like_dislike_button_title">Skjul Like og Dislike</string>
<string name="revanced_hide_like_dislike_button_summary_on">Lige- og Dislike knapper er skjult</string>
<string name="revanced_hide_like_dislike_button_summary_off">Lige- og Dislike knapper vises</string>
@@ -536,12 +543,18 @@ Denne funktion er kun tilgængelig for ældre enheder"</string>
<string name="revanced_hide_subscriptions_button_title">Skjul Abonnementer</string>
<string name="revanced_hide_subscriptions_button_summary_on">Abonnementer knappen er skjult</string>
<string name="revanced_hide_subscriptions_button_summary_off">Abonnementer knappen vises</string>
<string name="revanced_hide_notifications_button_title">Skjul notifikationer</string>
<string name="revanced_hide_notifications_button_summary_on">Notifikationsknappen er skjult</string>
<string name="revanced_hide_notifications_button_summary_off">Notifikationsknappen vises</string>
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_switch_create_with_notifications_button_title">Skift Opret med notifikationer</string>
<string name="revanced_switch_create_with_notifications_button_summary_on">"Opret-knappen er skiftet med knappen Meddelelser
Bemærk: Aktivering af dette skjuler også videoannoncer"</string>
<string name="revanced_switch_create_with_notifications_button_summary_off">Opret knappen er ikke skiftet med Notifikationer knappen</string>
<string name="revanced_switch_create_with_notifications_button_user_dialog_message">"Deaktivering af denne indstilling vil også deaktivere Shorts-annonceblokering.
Hvis ændring af denne indstilling ikke træder i kraft, kan du prøve at skifte til inkognitotilstand."</string>
<string name="revanced_hide_navigation_button_labels_title">Skjul navigationsknappens etiketter</string>
<string name="revanced_hide_navigation_button_labels_summary_on">Etiketter er skjult</string>
<string name="revanced_hide_navigation_button_labels_summary_off">Etiketter er vist</string>
@@ -611,7 +624,7 @@ Bemærk: Aktivering af dette skjuler også videoannoncer"</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">Videokvalitet menu footer er vist</string>
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<string name="revanced_hide_player_previous_next_buttons_title">Skjul forrige &amp; næste video knapper</string>
<string name="revanced_hide_player_previous_next_buttons_title">Skjul Forrige &amp; Næste knapper</string>
<string name="revanced_hide_player_previous_next_buttons_summary_on">Knapper er skjult</string>
<string name="revanced_hide_player_previous_next_buttons_summary_off">Knapper vises</string>
<string name="revanced_hide_cast_button_title">Skjul Cast-knappen</string>
@@ -756,10 +769,13 @@ Bemærk: Aktivering af dette skjuler også videoannoncer"</string>
<string name="revanced_hide_shorts_navigation_bar_summary_on">Navigationsbjælken er skjult</string>
<string name="revanced_hide_shorts_navigation_bar_summary_off">Navigationsbjælken vises</string>
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<string name="revanced_disable_suggested_video_end_screen_title">Deaktivér foreslået videoslutskærm</string>
<string name="revanced_disable_suggested_video_end_screen_summary_on">Foreslåede videoer vil blive deaktiveret</string>
<string name="revanced_disable_suggested_video_end_screen_summary_off">Foreslåede videoer vil blive vist</string>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
<string name="revanced_end_screen_suggested_video_title">Skjul foreslået videoslutskærmen</string>
<string name="revanced_end_screen_suggested_video_summary_on">"Foreslået video på slutskærmen er skjult, når automatisk afspilning er slået fra
Automatisk afspilning kan ændres i YouTube-indstillinger:
Indstillinger → Afspilning → Afspil næste video automatisk"</string>
<string name="revanced_end_screen_suggested_video_summary_off">Foreslået video på slutskærmen vises</string>
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
<string name="revanced_hide_timestamp_title">Skjul tidsstempel på video</string>
@@ -1122,7 +1138,7 @@ Hvis det senere slås fra, anbefales det at rydde app-dataene for at forhindre U
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Mini-afspiller</string>
<string name="revanced_miniplayer_screen_summary">Ændre stilen for den i app minimeret afspiller</string>
<string name="revanced_miniplayer_screen_summary">Skift stilen den minimerede afspiller i appen</string>
<string name="revanced_miniplayer_type_title">Type af miniplayer</string>
<string name="revanced_miniplayer_type_entry_0">Deaktiveret</string>
<string name="revanced_miniplayer_type_entry_1">Standard</string>
@@ -1264,8 +1280,8 @@ Aktivering af dette kan låse op for højere videokvalitet"</string>
</patch>
<patch id="misc.links.openLinksExternallyPatch">
<string name="revanced_external_browser_title">Åbn links i browser</string>
<string name="revanced_external_browser_summary_on">Åbning af links eksternt</string>
<string name="revanced_external_browser_summary_off">Åbner links i appen</string>
<string name="revanced_external_browser_summary_on">Åbner links i ekstern browser</string>
<string name="revanced_external_browser_summary_off">Åbner links i browser i appen</string>
</patch>
<patch id="misc.privacy.removeTrackingQueryParameterPatch">
<string name="revanced_remove_tracking_query_parameter_title">Fjern sporingsforespørgselsparameter</string>
@@ -1278,10 +1294,11 @@ Aktivering af dette kan låse op for højere videokvalitet"</string>
<string name="revanced_disable_zoom_haptics_summary_off">Haptics er aktiveret</string>
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<string name="revanced_force_original_audio_title">Tving original lyd</string>
<string name="revanced_force_original_audio_summary_on">Brug original lyd</string>
<string name="revanced_force_original_audio_title">Tving originalt lydsprog</string>
<string name="revanced_force_original_audio_summary_on">Bruger originalt lydsprog</string>
<string name="revanced_force_original_audio_summary_off">Brug standard lyd</string>
<string name="revanced_force_original_audio_not_available">Tilføj musik til denne historie</string>
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
<string name="revanced_force_original_audio_not_available">For at bruge denne funktion skal du ændre \"Spoof videostreams\" til iOS TV</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

View File

@@ -164,9 +164,6 @@ Tippen Sie auf die Schaltfläche \"Fortfahren\" und erlauben Sie die Optimierung
Sie werden nicht über unerwartete Ereignisse informiert."</string>
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<string name="revanced_disable_like_subscribe_glow_title">Like und Subscribe Button leuchten nicht mehr, wenn sie erwähnt werden</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Like- und Subscribe-Button leuchten nicht, wenn sie erwähnt werden</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Like- und Subscribe-Button leuchten, wenn sie erwähnt werden</string>
<string name="revanced_hide_album_cards_title">Albumkarten ausblenden</string>
<string name="revanced_hide_album_cards_summary_on">Albumkarten sind ausgeblendet</string>
<string name="revanced_hide_album_cards_summary_off">Albumkarten werden angezeigt</string>
@@ -300,13 +297,13 @@ Sie werden nicht über unerwartete Ereignisse informiert."</string>
<string name="revanced_hide_description_components_screen_title">Videobeschreibung</string>
<string name="revanced_hide_description_components_screen_summary">Komponenten der Videobeschreibung ausblenden oder anzeigen</string>
<string name="revanced_hide_filter_bar_screen_title">Filterleiste</string>
<string name="revanced_hide_filter_bar_screen_summary">Verstecke oder zeige die Filterleiste im Feed, in der Suche und verwandten Videos</string>
<string name="revanced_hide_filter_bar_screen_summary">Die Filterleiste im Feed, in den Suchergebnissen und in verwandten Videos ein- oder ausblenden</string>
<string name="revanced_hide_filter_bar_feed_in_feed_title">Im Feed ausblenden</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_on">Versteckt im Feed</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_off">Im Feed angezeigt</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">In der Suche ausblenden</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Versteckt in der Suche</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">In der Suche angezeigt</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">In Suchergebnissen ausblenden</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">In Suchergebnissen versteckt</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">In den Suchergebnissen angezeigt</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_title">In verwandten Videos ausblenden</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_on">Versteckt in verwandten Videos</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_off">In verwandten Videos angezeigt</string>
@@ -402,7 +399,7 @@ Diese Funktion ist nur für ältere Geräte verfügbar"</string>
<string name="revanced_hide_self_sponsor_ads_title">Selbst gesponserte Karten ausblenden</string>
<string name="revanced_hide_self_sponsor_ads_summary_on">Selbst gesponserte Karten sind ausgeblendet</string>
<string name="revanced_hide_self_sponsor_ads_summary_off">Selbstgesponserte Karten werden angezeigt</string>
<string name="revanced_hide_products_banner_title">Banner ausblenden, um Produkte anzuzeigen</string>
<string name="revanced_hide_products_banner_title">Banner \"Produkte ansehen\" ausblenden</string>
<string name="revanced_hide_products_banner_summary_on">Banner ist ausgeblendet</string>
<string name="revanced_hide_products_banner_summary_off">Banner wird angezeigt</string>
<string name="revanced_hide_end_screen_store_banner_title">Endbild-Banner ausblenden</string>
@@ -441,10 +438,10 @@ Diese Funktion ist nur für ältere Geräte verfügbar"</string>
<string name="revanced_share_copy_url_success">URL in Zwischenablage kopiert</string>
<string name="revanced_share_copy_url_timestamp_success">URL mit Zeitstempel kopiert</string>
<string name="revanced_copy_video_url_title">Video-URL-Schaltfläche kopieren anzeigen</string>
<string name="revanced_copy_video_url_summary_on">Schaltfläche wird angezeigt. Tippen, um Video-URL zu kopieren. Tippen und halten um Video-URL mit Zeitstempel zu kopieren</string>
<string name="revanced_copy_video_url_summary_on">Schaltfläche wird angezeigt. Tippen, um die Video-URL zu kopieren. Zum Kopieren mit Zeitstempel tippen und halten</string>
<string name="revanced_copy_video_url_summary_off">Button wird nicht angezeigt</string>
<string name="revanced_copy_video_url_timestamp_title">Kopiere Zeitstempel URL-Schaltfläche anzeigen</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Schaltfläche wird angezeigt. Tippen, um Video-URL mit Zeitstempel zu kopieren. Tippen und halten um Video ohne Zeitstempel zu kopieren</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Schaltfläche wird angezeigt. Tippen, um die Video-URL mit Zeitstempel zu kopieren. Zum Kopieren ohne Zeitstempel tippen und halten</string>
<string name="revanced_copy_video_url_timestamp_summary_off">Button wird nicht angezeigt</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
@@ -479,11 +476,13 @@ Diese Funktion ist nur für ältere Geräte verfügbar"</string>
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
<string name="revanced_swipe_brightness_title">Helligkeitsgeste aktivieren</string>
<string name="revanced_swipe_brightness_summary_on">Helligkeitswischen ist aktiviert</string>
<string name="revanced_swipe_brightness_summary_off">Helligkeitswischen ist deaktiviert</string>
<string name="revanced_swipe_brightness_summary_on">"Vollbild-Helligkeits-Swipe ist aktiviert
Passen Sie die Helligkeit an, indem Sie auf der linken Seite des Bildschirms vertikal wischen"</string>
<string name="revanced_swipe_brightness_summary_off">Vollbild-Helligkeits-Swipe ist deaktiviert</string>
<string name="revanced_swipe_volume_title">Lautstärke-Geste aktivieren</string>
<string name="revanced_swipe_volume_summary_on">Lautstärke-Wischen ist aktiviert</string>
<string name="revanced_swipe_volume_summary_off">Lautstärke-Wischen ist deaktiviert</string>
<string name="revanced_swipe_volume_summary_on">"Die Vollbild-Lautstärkegeste ist aktiviert\n\nPassen Sie die Lautstärke an, indem Sie auf der rechten Seite des Bildschirms vertikal wischen"</string>
<string name="revanced_swipe_volume_summary_off">Die Vollbild-Lautstärkegeste ist deaktiviert</string>
<string name="revanced_swipe_press_to_engage_title">Aktiviere Drücken-zu-Wischgeste</string>
<string name="revanced_swipe_press_to_engage_summary_on">Drücken zum Wischen ist aktiviert</string>
<string name="revanced_swipe_press_to_engage_summary_off">Drücken zum Wischen ist deaktiviert</string>
@@ -496,16 +495,19 @@ Diese Funktion ist nur für ältere Geräte verfügbar"</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_title">Auto-Helligkeit Geste aktivieren</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_on">Wische runter auf den niedrigsten Wert der Helligkeitsgeste, um die automatische Helligkeit zu aktivieren</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_off">Wenn man zum niedrigsten Wert wischt, aktiviert man die automatische Helligkeit nicht</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_overlay_text">Automatik</string>
<string name="revanced_swipe_overlay_timeout_title">Wischüberlagerungs-Timeout</string>
<string name="revanced_swipe_overlay_timeout_summary">Die Anzahl der Millisekunden, die das Overlay sichtbar ist</string>
<string name="revanced_swipe_text_overlay_size_title">Wischüberlagerung Textgröße</string>
<string name="revanced_swipe_text_overlay_size_summary">Die Textgröße für Wische-Overlay</string>
<string name="revanced_swipe_overlay_background_opacity_title">Bildschirmüberlagerung Deckkraft Swipe</string>
<string name="revanced_swipe_overlay_background_opacity_summary">Deckkraftwert zwischen 0-100</string>
<string name="revanced_swipe_overlay_background_opacity_invalid_toast">Die Wischdeckkraft muss zwischen 0 und 100 liegen</string>
<string name="revanced_swipe_threshold_title">Wischgrößenschwelle</string>
<string name="revanced_swipe_threshold_summary">Der Schwellenwert für Wischen</string>
<string name="revanced_swipe_show_circular_overlay_title">Kreisförmiges Overlay anzeigen</string>
<string name="revanced_swipe_show_circular_overlay_summary_on">Kreisförmiges Overlay wird angezeigt</string>
<string name="revanced_swipe_show_circular_overlay_summary_off">Horizontales Overlay wird angezeigt</string>
<string name="revanced_swipe_overlay_minimal_style_title">Minimalen Stil aktivieren</string>
<string name="revanced_swipe_overlay_minimal_style_summary_on">Minimaler Overlay-Stil ist aktiviert</string>
<string name="revanced_swipe_overlay_minimal_style_summary_off">Minimaler Overlay-Stil ist deaktiviert</string>
<string name="revanced_swipe_change_video_title">Mit Wischen wechseln Sie zu den Videos</string>
<string name="revanced_swipe_change_video_summary_on">Im Vollbildmodus wischen, um zum nächsten/vorherigen Video zu wechseln</string>
<string name="revanced_swipe_change_video_summary_off">Im Vollbildmodus wischen, um nicht zum nächsten/vorherigen Video zu wechseln</string>
@@ -518,6 +520,9 @@ Diese Funktion ist nur für ältere Geräte verfügbar"</string>
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">Aktionstasten</string>
<string name="revanced_hide_buttons_screen_summary">Verstecke oder zeige Schaltflächen unter Videos</string>
<string name="revanced_disable_like_subscribe_glow_title">Like und Subscribe Button leuchten nicht mehr, wenn sie erwähnt werden</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Like- und Subscribe-Button leuchten nicht, wenn sie erwähnt werden</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Like- und Subscribe-Button leuchten, wenn sie erwähnt werden</string>
<string name="revanced_hide_like_dislike_button_title">Verstecke Likes und Dislikes</string>
<string name="revanced_hide_like_dislike_button_summary_on">\"Gefällt mir\"-Tasten sind ausgeblendet</string>
<string name="revanced_hide_like_dislike_button_summary_off">\"Gefällt mir\"-Tasten werden angezeigt</string>
@@ -570,12 +575,18 @@ Diese Funktion ist nur für ältere Geräte verfügbar"</string>
<string name="revanced_hide_subscriptions_button_title">Abonnements ausblenden</string>
<string name="revanced_hide_subscriptions_button_summary_on">Abonnement-Button ist ausgeblendet</string>
<string name="revanced_hide_subscriptions_button_summary_off">Abonnement-Button wird angezeigt</string>
<string name="revanced_hide_notifications_button_title">Benachrichtigungen ausblenden</string>
<string name="revanced_hide_notifications_button_summary_on">Benachrichtigungs-Button ist ausgeblendet</string>
<string name="revanced_hide_notifications_button_summary_off">Benachrichtigungs-Button wird angezeigt</string>
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_switch_create_with_notifications_button_title">Tauscht Erstellen mit Benachrichtigungen</string>
<string name="revanced_switch_create_with_notifications_button_summary_on">"Die Schaltfläche \"Erstellen\" wird mit der Schaltfläche \"Benachrichtigungen\" vertauscht
Hinweis: Durch Aktivieren dieser Option wird auch die Videowerbung zwangsweise ausgeblendet"</string>
<string name="revanced_switch_create_with_notifications_button_summary_off">Erstellen-Button ist nicht mit Benachrichtigungs-Button getauscht</string>
<string name="revanced_switch_create_with_notifications_button_user_dialog_message">"Wenn Sie diese Einstellung deaktivieren, wird auch die Anzeigenblockierung für \"Shorts\" deaktiviert.
Wenn diese Änderung nicht wirksam wird, versuchen Sie, in den Inkognito-Modus zu wechseln."</string>
<string name="revanced_hide_navigation_button_labels_title">Navigationstastenbezeichnungen ausblenden</string>
<string name="revanced_hide_navigation_button_labels_summary_on">Labels sind ausgeblendet</string>
<string name="revanced_hide_navigation_button_labels_summary_off">Labels werden angezeigt</string>
@@ -645,7 +656,7 @@ Hinweis: Durch Aktivieren dieser Option wird auch die Videowerbung zwangsweise a
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">Video-Qualität Menü-Fußzeile wird angezeigt</string>
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<string name="revanced_hide_player_previous_next_buttons_title">Vorherige &amp; Nächste Video-Tasten ausblenden</string>
<string name="revanced_hide_player_previous_next_buttons_title">Vorherige &amp; Nächste Tasten ausblenden</string>
<string name="revanced_hide_player_previous_next_buttons_summary_on">Buttons sind ausgeblendet</string>
<string name="revanced_hide_player_previous_next_buttons_summary_off">Tasten werden angezeigt</string>
<string name="revanced_hide_cast_button_title">Cast-Button ausblenden</string>
@@ -790,10 +801,13 @@ Hinweis: Durch Aktivieren dieser Option wird auch die Videowerbung zwangsweise a
<string name="revanced_hide_shorts_navigation_bar_summary_on">Navigationsleiste ist ausgeblendet</string>
<string name="revanced_hide_shorts_navigation_bar_summary_off">Navigationsleiste wird angezeigt</string>
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<string name="revanced_disable_suggested_video_end_screen_title">Empfohlene Video-Endbildschirm deaktivieren</string>
<string name="revanced_disable_suggested_video_end_screen_summary_on">Empfohlene Videos werden deaktiviert</string>
<string name="revanced_disable_suggested_video_end_screen_summary_off">Empfohlene Videos werden angezeigt</string>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
<string name="revanced_end_screen_suggested_video_title">Vorgeschlagenes Video auf dem Endbildschirm ausblenden</string>
<string name="revanced_end_screen_suggested_video_summary_on">"Das vorgeschlagene Video auf dem Endbildschirm wird ausgeblendet, wenn die automatische Wiedergabe deaktiviert ist.
Die automatische Wiedergabe kann in den YouTube-Einstellungen geändert werden:
Einstellungen → Wiedergabe → Nächstes Video automatisch abspielen"</string>
<string name="revanced_end_screen_suggested_video_summary_off">Das vorgeschlagene Video auf dem Endbildschirm wird angezeigt</string>
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
<string name="revanced_hide_timestamp_title">Verstecke Video-Zeitstempel</string>
@@ -1174,7 +1188,7 @@ Wenn Sie die Funktion später deaktivieren, wird empfohlen, die App-Daten zu lö
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Minispieler</string>
<string name="revanced_miniplayer_screen_summary">Ändere den Stil des in App minimierten Players</string>
<string name="revanced_miniplayer_screen_summary">Das Aussehen des minimierten In-App-Players ändern</string>
<string name="revanced_miniplayer_type_title">Minispielertyp</string>
<string name="revanced_miniplayer_type_entry_0">Deaktiviert</string>
<string name="revanced_miniplayer_type_entry_1">Standard</string>
@@ -1320,8 +1334,8 @@ Durch Aktivieren dieser Option können höhere Videoqualitäten freigeschaltet w
</patch>
<patch id="misc.links.openLinksExternallyPatch">
<string name="revanced_external_browser_title">Links im Browser öffnen</string>
<string name="revanced_external_browser_summary_on">Links extern öffnen</string>
<string name="revanced_external_browser_summary_off">Öffne Links in der App</string>
<string name="revanced_external_browser_summary_on">Links im externen Browser öffnen</string>
<string name="revanced_external_browser_summary_off">Links im In-App-Browser öffnen</string>
</patch>
<patch id="misc.privacy.removeTrackingQueryParameterPatch">
<string name="revanced_remove_tracking_query_parameter_title">Tracking-Abfrageparameter entfernen</string>
@@ -1335,9 +1349,10 @@ Durch Aktivieren dieser Option können höhere Videoqualitäten freigeschaltet w
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<string name="revanced_force_original_audio_title">Original Audio erzwingen</string>
<string name="revanced_force_original_audio_summary_on">Originales Audio verwenden</string>
<string name="revanced_force_original_audio_summary_on">Original-Audiosprache verwenden</string>
<string name="revanced_force_original_audio_summary_off">Standardaudio verwenden</string>
<string name="revanced_force_original_audio_not_available">Um diese Funktion zu nutzen, ändern Sie das Stream-Spoofing auf den iOS-Clienttyp.</string>
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
<string name="revanced_force_original_audio_not_available">Um diese Funktion zu nutzen, ändere \"Video-Streams fälschen\" zu iOS TV</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

View File

@@ -168,9 +168,6 @@ Second \"item\" text"</string>
Δεν θα ειδοποιηθείτε για τυχόν απρόβλεπτα γεγονότα."</string>
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<string name="revanced_disable_like_subscribe_glow_title">Απενεργοποίηση λάμψης κουμπιών «Μου αρέσει» και «Εγγραφή»</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Τα κουμπιά «Μου αρέσει» και «Εγγραφή» δεν θα λάμπουν όταν αναφέρονται</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Τα κουμπιά «Μου αρέσει» και «Εγγραφή» θα λάμπουν όταν αναφέρονται</string>
<string name="revanced_hide_album_cards_title">Κάρτες άλμπουμ</string>
<string name="revanced_hide_album_cards_summary_on">Κρυμμένες</string>
<string name="revanced_hide_album_cards_summary_off">Εμφανίζονται</string>
@@ -199,9 +196,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_join_membership_button_summary_on">Κρυμμένο</string>
<string name="revanced_hide_join_membership_button_summary_off">Εμφανίζεται</string>
<!-- 'For you' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_for_you_shelf_title">Ενότητα «Για εσάς»</string>
<string name="revanced_hide_for_you_shelf_summary_on">Το ράφι στη σελίδα καναλιού είναι κρυφό</string>
<string name="revanced_hide_for_you_shelf_summary_off">Το ράφι στη σελίδα καναλιού εμφανίζεται</string>
<string name="revanced_hide_for_you_shelf_title">Ενότητα «Για εσάς» στη σελίδα καναλιού</string>
<string name="revanced_hide_for_you_shelf_summary_on">Κρυμμένο</string>
<string name="revanced_hide_for_you_shelf_summary_off">Εμφανίζεται</string>
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the subscription feed for future livestreams or unreleased videos. -->
<string name="revanced_hide_notify_me_button_title">Κουμπί «Να λαμβάνω ειδοποιήσεις»</string>
@@ -226,8 +223,8 @@ Second \"item\" text"</string>
<string name="revanced_hide_chips_shelf_summary_on">Κρυμμένη</string>
<string name="revanced_hide_chips_shelf_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_expandable_chip_title">Επεκτάσιμο πλαίσιο κάτω από τα βίντεο</string>
<string name="revanced_hide_expandable_chip_summary_on">Η επεκτάσιμη κάρτα είναι κρυφή</string>
<string name="revanced_hide_expandable_chip_summary_off">Η επεκτάσιμη κάρτα εμφανίζεται</string>
<string name="revanced_hide_expandable_chip_summary_on">Κρυμμένο</string>
<string name="revanced_hide_expandable_chip_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_community_posts_title">Δημοσιεύσεις κοινότητας</string>
<string name="revanced_hide_community_posts_summary_on">Κρυμμένες</string>
<string name="revanced_hide_community_posts_summary_off">Εμφανίζονται</string>
@@ -282,31 +279,31 @@ Second \"item\" text"</string>
<string name="revanced_hide_artist_cards_title">Κάρτες καλλιτεχνών</string>
<string name="revanced_hide_artist_cards_summary_on">Κρυμμένες</string>
<string name="revanced_hide_artist_cards_summary_off">Εμφανίζονται</string>
<string name="revanced_hide_attributes_section_title">Ενότητα χαρακτηριστικών</string>
<string name="revanced_hide_attributes_section_summary_on">Οι ενότητες Επιλεγμένα μέρη, Παιχνίδια, Μουσική και Άτομα που αναφέρθηκαν είναι κρυφές</string>
<string name="revanced_hide_attributes_section_summary_off">Οι ενότητες Επιλεγμένα μέρη, Παιχνίδια, Μουσική και Άτομα που αναφέρθηκαν εμφανίζονται</string>
<string name="revanced_hide_chapters_section_title">Απόκρυψη κεφαλαίων</string>
<string name="revanced_hide_attributes_section_title">Ενότητα ιδιοτήτων</string>
<string name="revanced_hide_attributes_section_summary_on">Κρυμμένη.\n\nΑφορά τις ιδιότητες: Επιλεγμένα μέρη, Παιχνίδια, Μουσική, και «Οι χρήστες ανέφεραν»</string>
<string name="revanced_hide_attributes_section_summary_off">Εμφανίζεται.\n\nΑφορά τις ιδιότητες: Επιλεγμένα μέρη, Παιχνίδια, Μουσική, και «Οι χρήστες ανέφεραν»</string>
<string name="revanced_hide_chapters_section_title">Κεφάλαια του βίντεο</string>
<string name="revanced_hide_chapters_section_summary_on">Κρυμμένη</string>
<string name="revanced_hide_chapters_section_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_how_this_was_made_section_title">Απόκρυψη \"Πώς δημιουργήθηκε αυτό το περιεχόμενο\"</string>
<string name="revanced_hide_how_this_was_made_section_summary_on">Η ενότητα Πώς δημιουργήθηκε αυτό το περιεχόμενο είναι κρυφή</string>
<string name="revanced_hide_how_this_was_made_section_summary_off">Η ενότητα Πώς δημιουργήθηκε αυτό το περιεχόμενο εμφανίζεται</string>
<string name="revanced_hide_podcast_section_title">Απόκρυψη \"Εξερευνήστε το podcast\"</string>
<string name="revanced_hide_podcast_section_summary_on">Η ενότητα Εξερευνήστε το podcast είναι κρυφή</string>
<string name="revanced_hide_podcast_section_summary_off">Η ενότητα Εξερευνήστε το podcast εμφανίζεται</string>
<string name="revanced_hide_info_cards_section_title">Απόκρυψη καρτών πληροφοριών</string>
<string name="revanced_hide_how_this_was_made_section_title">Ενότητα «Πως δημιουργήθηκε αυτό το περιεχόμενο»</string>
<string name="revanced_hide_how_this_was_made_section_summary_on">Κρυμμένη</string>
<string name="revanced_hide_how_this_was_made_section_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_podcast_section_title">Ενότητα «Εξερευνήστε το podcast»</string>
<string name="revanced_hide_podcast_section_summary_on">Κρυμμένη</string>
<string name="revanced_hide_podcast_section_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_info_cards_section_title">Κάρτες πληροφοριών</string>
<string name="revanced_hide_info_cards_section_summary_on">Κρυμμένη</string>
<string name="revanced_hide_info_cards_section_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_key_concepts_section_title">Απόκρυψη \"Βασικές έννοιες\"</string>
<string name="revanced_hide_key_concepts_section_summary_on">Η ενότητα Βασικές έννοιες είναι κρυφή</string>
<string name="revanced_hide_key_concepts_section_summary_off">Η ενότητα Βασικές έννοιες εμφανίζεται</string>
<string name="revanced_hide_transcript_section_title">Απόκρυψη μεταγραφής</string>
<string name="revanced_hide_key_concepts_section_title">Ενότητα «Βασικές έννοιες»</string>
<string name="revanced_hide_key_concepts_section_summary_on">Κρυμμένη</string>
<string name="revanced_hide_key_concepts_section_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_transcript_section_title">Ενότητα «Μεταγραφή»</string>
<string name="revanced_hide_transcript_section_summary_on">Κρυμμένη</string>
<string name="revanced_hide_transcript_section_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_description_components_screen_title">Περιγραφή βίντεο</string>
<string name="revanced_hide_description_components_screen_summary">Απόκρυψη ή εμφάνιση στοιχείων περιγραφής βίντεο</string>
<string name="revanced_hide_filter_bar_screen_title">Γραμμή φίλτρων</string>
<string name="revanced_hide_filter_bar_screen_summary">Απόκρυψη η εμφάνιση της γραμμής φίλτρων στη ροή, αναζήτηση και τα σχετικά βίντεο</string>
<string name="revanced_hide_filter_bar_screen_summary">Απόκρυψη ή εμφάνιση της γραμμής φίλτρων στην ροή, στα αποτελέσματα αναζήτησης και στα σχετικά βίντεο</string>
<string name="revanced_hide_filter_bar_feed_in_feed_title">Απόκρυψη στη ροή</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_on">Κρυμμένη</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_off">Εμφανίζεται</string>
@@ -318,21 +315,21 @@ Second \"item\" text"</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_off">Εμφανίζεται</string>
<string name="revanced_comments_screen_title">Σχόλια</string>
<string name="revanced_comments_screen_summary">Απόκρυψη ή εμφάνιση στοιχείων στα σχόλια</string>
<string name="revanced_hide_comments_chat_summary_title">Απόκρυψη \"Σύνοψη συνομιλίας\"</string>
<string name="revanced_hide_comments_chat_summary_summary_on">Η σύνοψη συνομιλίας είναι κρυφή</string>
<string name="revanced_hide_comments_chat_summary_summary_off">Η σύνοψη συνομιλίας εμφανίζεται</string>
<string name="revanced_hide_comments_by_members_header_title">Ετικέτα «Σχόλια από μέλη»</string>
<string name="revanced_hide_comments_by_members_header_summary_on">Η κεφαλίδα Σχόλια από μέλη είναι κρυφή</string>
<string name="revanced_hide_comments_by_members_header_summary_off">Η κεφαλίδα Σχόλια από μέλη εμφανίζεται</string>
<string name="revanced_hide_comments_chat_summary_title">Σύνοψη συνομιλίας</string>
<string name="revanced_hide_comments_chat_summary_summary_on">Κρυμμένη</string>
<string name="revanced_hide_comments_chat_summary_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_comments_by_members_header_title">Κεφαλίδα «Σχόλια από μέλη»</string>
<string name="revanced_hide_comments_by_members_header_summary_on">Κρυμμένη</string>
<string name="revanced_hide_comments_by_members_header_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_comments_section_title">Ενότητα σχολίων</string>
<string name="revanced_hide_comments_section_summary_on">Κρυμμένη</string>
<string name="revanced_hide_comments_section_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_comments_create_a_short_button_title">Κουμπί «Δημιουργία Short»</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Το κουμπί Δημιουργία Short είναι κρυφό</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Το κουμπί Δημιουργία Short εμφανίζεται</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Απόκρυψη κουμπιών emoji και χρονικής σήμανσης</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Τα κουμπιά Emoji και χρονικής σήμανσης είναι κρυφά</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Τα κουμπιά Emoji και χρονικής σήμανσης εμφανίζονται</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Κρυμμένο</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Κουμπιά χρονοσήμανσης και emoji</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Κρυμμένα</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Εμφανίζονται</string>
<string name="revanced_hide_comments_preview_comment_title">Προεπισκόπηση σχολίου</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Κρυμμένη</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Εμφανίζεται</string>
@@ -409,22 +406,22 @@ Second \"item\" text"</string>
<string name="revanced_hide_self_sponsor_ads_title">Κάρτες αυτοπροώθησης</string>
<string name="revanced_hide_self_sponsor_ads_summary_on">Κρυμμένες</string>
<string name="revanced_hide_self_sponsor_ads_summary_off">Εμφανίζονται</string>
<string name="revanced_hide_products_banner_title">Διαφημίσεις προβολής προϊόντων</string>
<string name="revanced_hide_products_banner_title">Ετικέτα «Προβολή προϊόντων»</string>
<string name="revanced_hide_products_banner_summary_on">Κρυμμένες</string>
<string name="revanced_hide_products_banner_summary_off">Εμφανίζονται</string>
<string name="revanced_hide_end_screen_store_banner_title">Ετικέτα καταστήματος τελικής οθόνης</string>
<string name="revanced_hide_end_screen_store_banner_title">Ετικέτα καταστήματος στην τελική οθόνη</string>
<string name="revanced_hide_end_screen_store_banner_summary_on">Κρυμμένη</string>
<string name="revanced_hide_end_screen_store_banner_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_player_store_shelf_title">Ενότητα αγορών οθόνης αναπαραγωγής</string>
<string name="revanced_hide_player_store_shelf_summary_on">Κρυμμένη</string>
<string name="revanced_hide_player_store_shelf_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_shopping_links_title">Σύνδεσμοι αγορών στην περιγραφή βίντεο</string>
<string name="revanced_hide_shopping_links_summary_on">Οι σύνδεσμοι αγορών στην περιγραφή του βίντεο είναι κρυφοί</string>
<string name="revanced_hide_shopping_links_summary_off">Οι σύνδεσμοι αγορών στην περιγραφή του βίντεο εμφανίζονται</string>
<string name="revanced_hide_shopping_links_title">Σύνδεσμοι αγορών</string>
<string name="revanced_hide_shopping_links_summary_on">Κρυμμένοι</string>
<string name="revanced_hide_shopping_links_summary_off">Εμφανίζονται</string>
<!-- 'Visit store' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_visit_store_button_title">Κουμπί «Επίσκεψη καταστήματος» στις σελίδες καναλιών</string>
<string name="revanced_hide_visit_store_button_summary_on">Το κουμπί στη σελίδα καναλιού είναι κρυφό</string>
<string name="revanced_hide_visit_store_button_summary_off">Το κουμπί στη σελίδα καναλιού εμφανίζεται</string>
<string name="revanced_hide_visit_store_button_title">Κουμπί «Επίσκεψη στο κατάστημα» στη σελίδα καναλιού</string>
<string name="revanced_hide_visit_store_button_summary_on">Κρυμμένο</string>
<string name="revanced_hide_visit_store_button_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_web_search_results_title">Αποτελέσματα αναζήτησης στο διαδίκτυο</string>
<string name="revanced_hide_web_search_results_summary_on">Κρυμμένα</string>
<string name="revanced_hide_web_search_results_summary_off">Εμφανίζονται</string>
@@ -448,10 +445,10 @@ Second \"item\" text"</string>
<string name="revanced_share_copy_url_success">Η διεύθυνση URL αντιγράφηκε στο πρόχειρο</string>
<string name="revanced_share_copy_url_timestamp_success">Η διεύθυνση URL αντιγράφηκε με χρονική σήμανση</string>
<string name="revanced_copy_video_url_title">Εμφάνιση κουμπιού αντιγραφής URL του βίντεο</string>
<string name="revanced_copy_video_url_summary_on">Το κουμπί εμφανίζεται. Πατήστε για αντιγραφή του συνδέσμου βίντεο ή πατήστε παρατεταμένα για αντιγραφή του συνδέσμου βίντεο με χρονική σήμανση</string>
<string name="revanced_copy_video_url_summary_on">Το κουμπί εμφανίζεται. Πατήστε για να αντιγράψετε τη διεύθυνση URL του βίντεο. Πατήστε παρατεταμένα για να αντιγράψετε τη διεύθυνση URL με χρονική σήμανση</string>
<string name="revanced_copy_video_url_summary_off">Το κουμπί δεν εμφανίζεται</string>
<string name="revanced_copy_video_url_timestamp_title">Εμφάνιση κουμπιού αντιγραφής URL με χρονική σήμανση</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Το κουμπί εμφανίζεται. Πατήστε για αντιγραφή του συνδέσμου βίντεο με χρονική σήμανση ή πατήστε παρατεταμένα για αντιγραφή του συνδέσμου βίντεο χωρίς χρονική σήμανση</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Το κουμπί εμφανίζεται. Πατήστε για να αντιγράψετε τη διεύθυνση URL του βίντεο με χρονική σήμανση. Πατήστε παρατεταμένα για να αντιγράψετε τη διεύθυνση URL χωρίς χρονική σήμανση</string>
<string name="revanced_copy_video_url_timestamp_summary_off">Το κουμπί δεν εμφανίζεται</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
@@ -486,11 +483,15 @@ Second \"item\" text"</string>
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
<string name="revanced_swipe_brightness_title">Σάρωση οθόνης για φωτεινότητα</string>
<string name="revanced_swipe_brightness_summary_on">Η δυνατότητα αλλαγής φωτεινότητας με χειρονομία κατακόρυφης σάρωσης στην αριστερή πλευρά της οθόνης αναπαραγωγής είναι ενεργοποιημένη</string>
<string name="revanced_swipe_brightness_summary_off">Η δυνατότητα αλλαγής φωτεινότητας με χειρονομία σάρωσης στην οθόνη αναπαραγωγής είναι απενεργοποιημένη</string>
<string name="revanced_swipe_brightness_summary_on">"Η χειρονομία σάρωσης για αλλαγή φωτεινότητας στην πλήρη οθόνη είναι ενεργοποιημένη
Προσαρμόστε τη φωτεινότητα σαρώνοντας κάθετα στην αριστερή πλευρά της οθόνης"</string>
<string name="revanced_swipe_brightness_summary_off">Η χειρονομία σάρωσης για αλλαγή φωτεινότητας στην πλήρη οθόνη είναι απενεργοποιημένη</string>
<string name="revanced_swipe_volume_title">Σάρωση οθόνης για ένταση ήχου</string>
<string name="revanced_swipe_volume_summary_on">Η δυνατότητα αλλαγής έντασης ήχου με χειρονομία κατακόρυφης σάρωσης στη δεξιά πλευρά της οθόνης αναπαραγωγής είναι ενεργοποιημένη</string>
<string name="revanced_swipe_volume_summary_off">Η δυνατότητα αλλαγής έντασης ήχου με χειρονομία σάρωσης στην οθόνη αναπαραγωγής είναι απενεργοποιημένη</string>
<string name="revanced_swipe_volume_summary_on">"Η χειρονομία σάρωσης για αλλαγή έντασης ήχου στην πλήρη οθόνη είναι ενεργοποιημένη
Προσαρμόστε την ένταση ήχου σαρώνοντας κάθετα στη δεξιά πλευρά της οθόνης"</string>
<string name="revanced_swipe_volume_summary_off">Η χειρονομία σάρωσης για αλλαγή έντασης ήχου στην πλήρη οθόνη είναι απενεργοποιημένη</string>
<string name="revanced_swipe_press_to_engage_title">Λειτουργία πάτημα-για-σάρωση</string>
<string name="revanced_swipe_press_to_engage_summary_on">Η λειτουργία πάτημα-για-σάρωση είναι ενεργοποιημένη, πατήστε παρατεταμένα για χειρονομίες σάρωσης</string>
<string name="revanced_swipe_press_to_engage_summary_off">Η λειτουργία πάτημα-για-σάρωση είναι απενεργοποιημένη, πατήστε παρατεταμένα για χειρονομίες σάρωσης</string>
@@ -503,16 +504,19 @@ Second \"item\" text"</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_title">Ενεργοποίηση χειρονομίας αυτόματης φωτεινότητας</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_on">Η σάρωση προς τα κάτω στη χαμηλότερη τιμή της χειρονομίας φωτεινότητας ενεργοποιεί την αυτόματη φωτεινότητα</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_off">Η σάρωση προς τα κάτω στη χαμηλότερη τιμή δεν ενεργοποιεί την αυτόματη φωτεινότητα</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_overlay_text">Αυτόματη φωτεινότητα</string>
<string name="revanced_swipe_overlay_timeout_title">Χρονικό όριο εμφάνισης πλαισίου σάρωσης</string>
<string name="revanced_swipe_overlay_timeout_summary">Το χρονικό διάστημα χιλιοστών του δευτερολέπτου που είναι ορατό το πλαίσιο σάρωσης</string>
<string name="revanced_swipe_text_overlay_size_title">Μέγεθος κειμένου πλαισίου σάρωσης</string>
<string name="revanced_swipe_text_overlay_size_summary">Το μέγεθος κειμένου του πλαισίου σάρωσης</string>
<string name="revanced_swipe_overlay_background_opacity_title">Αδιαφάνεια φόντου σάρωσης</string>
<string name="revanced_swipe_overlay_background_opacity_summary">Τιμή αδιαφάνειας μεταξύ 0-100</string>
<string name="revanced_swipe_overlay_background_opacity_invalid_toast">Η αδιαφάνεια σάρωσης πρέπει να είναι μεταξύ 0-100</string>
<string name="revanced_swipe_threshold_title">Κατώτατο όριο μεγέθους σάρωσης</string>
<string name="revanced_swipe_threshold_summary">Η ελάχιστη απόσταση που θα διανύσετε με το δάκτυλο σας για να είναι αναγνωρίσιμη η χειρονομία σάρωσης</string>
<string name="revanced_swipe_show_circular_overlay_title">Εμφάνιση κυκλικής διάταξης</string>
<string name="revanced_swipe_show_circular_overlay_summary_on">Η διάταξη των ελέγχων σάρωσης είναι κυκλική</string>
<string name="revanced_swipe_show_circular_overlay_summary_off">Η διάταξη των ελέγχων σάρωσης είναι οριζόντια</string>
<string name="revanced_swipe_overlay_minimal_style_title">Διάταξη μινιμαλιστικού στυλ</string>
<string name="revanced_swipe_overlay_minimal_style_summary_on">Το μινιμαλιστικό στυλ διάταξης των ελέγχων σάρωσης είναι ενεργοποιημένο</string>
<string name="revanced_swipe_overlay_minimal_style_summary_off">Το μινιμαλιστικό στυλ διάταξης των ελέγχων σάρωσης είναι απενεργοποιημένο</string>
<string name="revanced_swipe_change_video_title">Χειρονομία εναλλαγής βίντεο στην πλήρη οθόνη</string>
<string name="revanced_swipe_change_video_summary_on">Σάρωση αριστερά/δεξιά κατά τη λειτουργία πλήρους οθόνης για αλλαγή σε επόμενο/προηγούμενο βίντεο</string>
<string name="revanced_swipe_change_video_summary_off">Η χειρονομία αλλαγής βίντεο κατά τη λειτουργία πλήρους οθόνης είναι ανενεργή</string>
@@ -525,6 +529,9 @@ Second \"item\" text"</string>
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">Κουμπιά ενεργειών</string>
<string name="revanced_hide_buttons_screen_summary">Απόκρυψη ή εμφάνιση κουμπιών κάτω από βίντεο</string>
<string name="revanced_disable_like_subscribe_glow_title">Απενεργοποίηση λάμψης κουμπιών «Μου αρέσει» και «Εγγραφή»</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Τα κουμπιά «Μου αρέσει» και «Εγγραφή» δεν θα λάμπουν όταν αναφέρονται</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Τα κουμπιά «Μου αρέσει» και «Εγγραφή» θα λάμπουν όταν αναφέρονται</string>
<string name="revanced_hide_like_dislike_button_title">Κουμπιά «Μου αρέσει» και «Δεν μου αρέσει»</string>
<string name="revanced_hide_like_dislike_button_summary_on">Κρυμμένα</string>
<string name="revanced_hide_like_dislike_button_summary_off">Εμφανίζονται</string>
@@ -577,12 +584,18 @@ Second \"item\" text"</string>
<string name="revanced_hide_subscriptions_button_title">Κουμπί «Εγγραφές»</string>
<string name="revanced_hide_subscriptions_button_summary_on">Κρυμμένο</string>
<string name="revanced_hide_subscriptions_button_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_notifications_button_title">Κουμπί «Ειδοποιήσεις»</string>
<string name="revanced_hide_notifications_button_summary_on">Κρυμμένο</string>
<string name="revanced_hide_notifications_button_summary_off">Εμφανίζεται</string>
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_switch_create_with_notifications_button_title">Εναλλαγή κουμπιού «Δημιουργία» με κουμπί «Ειδοποιήσεις»</string>
<string name="revanced_switch_create_with_notifications_button_summary_on">"Γίνεται εναλλαγή θέσεων των κουμπιών «Δημιουργία» και «Ειδοποιήσεις»
Σημείωση: Η ενεργοποίηση αυτής της ρύθμισης εξαναγκάζει επίσης την απόκρυψη των διαφημίσεων βίντεο"</string>
<string name="revanced_switch_create_with_notifications_button_summary_off">Δε γίνεται εναλλαγή του κουμπιού δημιουργίας σε κουμπί ειδοποιήσεων</string>
<string name="revanced_switch_create_with_notifications_button_user_dialog_message">"Η απενεργοποίηση αυτής της ρύθμισης θα έχει ως αποτέλεσμα την εμφάνιση διαφημίσεων Shorts.
Εάν η αλλαγή αυτής της ρύθμισης δεν έχει αποτέλεσμα, δοκιμάστε να μεταβείτε σε λειτουργία ανώνυμης περιήγησης."</string>
<string name="revanced_hide_navigation_button_labels_title">Ονομασίες κουμπιών γραμμής πλοήγησης</string>
<string name="revanced_hide_navigation_button_labels_summary_on">Κρυμμένες</string>
<string name="revanced_hide_navigation_button_labels_summary_off">Εμφανίζονται</string>
@@ -797,10 +810,13 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_navigation_bar_summary_on">Η γραμμή πλοήγησης θα είναι κρυμμένη κατά την αναπαραγωγή Shorts</string>
<string name="revanced_hide_shorts_navigation_bar_summary_off">Η γραμμή πλοήγησης εμφανίζεται κατά την αναπαραγωγή Shorts</string>
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<string name="revanced_disable_suggested_video_end_screen_title">Τελική οθόνη προτεινόμενων βίντεο</string>
<string name="revanced_disable_suggested_video_end_screen_summary_on">Κρυμμένη</string>
<string name="revanced_disable_suggested_video_end_screen_summary_off">Εμφανίζεται</string>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
<string name="revanced_end_screen_suggested_video_title">Προτεινόμενο βίντεο τελικής οθόνης</string>
<string name="revanced_end_screen_suggested_video_summary_on">"Κρυμμένο όταν η αυτόματη αναπαραγωγή είναι απενεργοποιημένη
Η αυτόματη αναπαραγωγή μπορεί να αλλαχτεί στις ρυθμίσεις YouTube:
Ρυθμίσεις → Αναπαραγωγή→ Αυτόματη αναπαραγωγή επόμενου βίντεο"</string>
<string name="revanced_end_screen_suggested_video_summary_off">Εμφανίζεται</string>
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
<string name="revanced_hide_timestamp_title">Χρονική πρόοδος βίντεο</string>
@@ -1180,15 +1196,15 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Ελαχιστοποιημένη οθόνη αναπαραγωγής</string>
<string name="revanced_miniplayer_screen_summary">Αλλάξτε το στυλ της ελαχιστοποιημένης οθόνης αναπαραγωγής</string>
<string name="revanced_miniplayer_screen_summary">Αλλαγή του στυλ της ελαχιστοποιημένης οθόνης αναπαραγωγής της εφαρμογής</string>
<string name="revanced_miniplayer_type_title">Τύπος ελαχιστοποιημένης οθόνης αναπαραγωγής</string>
<string name="revanced_miniplayer_type_entry_0">Απενεργοποιημένη</string>
<string name="revanced_miniplayer_type_entry_1">Προεπιλογή</string>
<string name="revanced_miniplayer_type_entry_2">Ελάχιστη</string>
<string name="revanced_miniplayer_type_entry_3">Ταμπλετ</string>
<string name="revanced_miniplayer_type_entry_4">Μοντέρνα 1</string>
<string name="revanced_miniplayer_type_entry_5">Μοντέρνα 2</string>
<string name="revanced_miniplayer_type_entry_6">Μοντέρνα 3</string>
<string name="revanced_miniplayer_type_entry_4">Μοντέρνος 1</string>
<string name="revanced_miniplayer_type_entry_5">Μοντέρνος 2</string>
<string name="revanced_miniplayer_type_entry_6">Μοντέρνος 3</string>
<string name="revanced_miniplayer_rounded_corners_title">Στρογγυλεμένες γωνίες</string>
<string name="revanced_miniplayer_rounded_corners_summary_on">Οι γωνίες είναι στρογγυλεμένες</string>
<string name="revanced_miniplayer_rounded_corners_summary_off">Οι γωνίες είναι τετράγωνες</string>
@@ -1324,8 +1340,8 @@ Second \"item\" text"</string>
</patch>
<patch id="misc.links.openLinksExternallyPatch">
<string name="revanced_external_browser_title">Άνοιγμα συνδέσμων σε πρόγραμμα περιήγησης</string>
<string name="revanced_external_browser_summary_on">Οι σύνδεσμοι ανοίγουν εξωτερικά</string>
<string name="revanced_external_browser_summary_off">Οι σύνδεσμοι ανοίγουν εντός της εφαρμογής</string>
<string name="revanced_external_browser_summary_on">Οι σύνδεσμοι ανοίγουν σε εξωτερικό πρόγραμμα περιήγησης</string>
<string name="revanced_external_browser_summary_off">Οι σύνδεσμοι ανοίγουν στο εσωτερικό πρόγραμμα περιήγησης της εφαρμογής</string>
</patch>
<patch id="misc.privacy.removeTrackingQueryParameterPatch">
<string name="revanced_remove_tracking_query_parameter_title">Καθαρισμός συνδέσμων κοινοποίησης</string>
@@ -1338,10 +1354,11 @@ Second \"item\" text"</string>
<string name="revanced_disable_zoom_haptics_summary_off">Η απόκριση δόνησης είναι ενεργοποιημένη</string>
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<string name="revanced_force_original_audio_title">Εξαναγκασμός αρχικού ήχου</string>
<string name="revanced_force_original_audio_summary_on">Χρησιμοποιείται ο αρχικός ήχος</string>
<string name="revanced_force_original_audio_title">Εξαναγκασμός αρχικής γλώσσας ήχου</string>
<string name="revanced_force_original_audio_summary_on">Χρησιμοποιείται η αρχική γλώσσα ήχου</string>
<string name="revanced_force_original_audio_summary_off">Χρησιμοποιείται ο προεπιλεγμένος ήχος</string>
<string name="revanced_force_original_audio_not_available">Για να χρησιμοποιήσετε αυτήν τη δυνατότητα, αλλάξτε τον τύπο παραποίησης ροών βίντεο σε iOS</string>
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
<string name="revanced_force_original_audio_not_available">Για να χρησιμοποιήσετε αυτήν τη λειτουργία, αλλάξτε την επιλογή «Παραποίηση ροών βίντεο» σε iOS TV</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

View File

@@ -158,9 +158,6 @@ Para traducir nuevos idiomas, visita translate.revanced.app"</string>
<string name="revanced_debug_toast_on_error_user_dialog_message">"Desactivar las notificaciones de error oculta todas las notificaciones de error de ReVanced."</string>
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<string name="revanced_disable_like_subscribe_glow_title">Desactivar el brillo de los botones Me gusta y Suscribirse</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Los botones Me gusta y Suscribirse no brillarán cuando se mencionen</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Los botones Me gusta y Suscribirse brillarán cuando se mencionen</string>
<string name="revanced_hide_album_cards_title">Ocultar álbumes</string>
<string name="revanced_hide_album_cards_summary_on">Las tarjetas de álbum están ocultas</string>
<string name="revanced_hide_album_cards_summary_off">Se muestran las tarjetas de álbum</string>
@@ -294,13 +291,13 @@ Para traducir nuevos idiomas, visita translate.revanced.app"</string>
<string name="revanced_hide_description_components_screen_title">Descripción del vídeo</string>
<string name="revanced_hide_description_components_screen_summary">Ocultar o mostrar componentes de descripción de vídeo</string>
<string name="revanced_hide_filter_bar_screen_title">Barra de filtros</string>
<string name="revanced_hide_filter_bar_screen_summary">Ocultar o mostrar la barra de filtros en el feed, la búsqueda y deos relacionados</string>
<string name="revanced_hide_filter_bar_screen_summary">Ocultar o mostrar la barra de filtro en el feed, los resultados de búsqueda y los videos relacionados</string>
<string name="revanced_hide_filter_bar_feed_in_feed_title">Ocultar en el feed</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_on">Escondido en el feed</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_off">Mostrar en el feed</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Ocultar en búsqueda</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Oculto en la búsqueda</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Mostrar en búsqueda</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Ocultar en los resultados de búsqueda</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Oculto en los resultados de búsqueda</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Mostrado en los resultados de búsqueda</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_title">Ocultar en vídeos relacionados</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_on">Escondido en videos relacionados</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_off">Mostrar en vídeos relacionados</string>
@@ -397,7 +394,7 @@ Esta función solo está disponible para dispositivos antiguos"</string>
<string name="revanced_hide_self_sponsor_ads_title">Ocultar tarjetas autopatrocinadas</string>
<string name="revanced_hide_self_sponsor_ads_summary_on">Las tarjetas autopatrocinadas están ocultas</string>
<string name="revanced_hide_self_sponsor_ads_summary_off">Se muestran las tarjetas autopatrocinadas</string>
<string name="revanced_hide_products_banner_title">Ocultar banner para ver los productos</string>
<string name="revanced_hide_products_banner_title">Ocultar el banner \"Ver productos\"</string>
<string name="revanced_hide_products_banner_summary_on">Banner oculto</string>
<string name="revanced_hide_products_banner_summary_off">Banner mostrado</string>
<string name="revanced_hide_end_screen_store_banner_title">Ocultar banner de la tienda en la pantalla final</string>
@@ -436,10 +433,10 @@ Esta función solo está disponible para dispositivos antiguos"</string>
<string name="revanced_share_copy_url_success">URL copiada al portapapeles</string>
<string name="revanced_share_copy_url_timestamp_success">URL con marca de tiempo copiada</string>
<string name="revanced_copy_video_url_title">Mostrar botón URL de copia de vídeo</string>
<string name="revanced_copy_video_url_summary_on">El botón se muestra. Toque para copiar la URL del vídeo. Mantenga pulsado para copiar la URL del vídeo con la marca de tiempo</string>
<string name="revanced_copy_video_url_summary_on">El botón se muestra. Toca para copiar la URL del vídeo. Toca y mantén pulsado para copiar con la marca de tiempo</string>
<string name="revanced_copy_video_url_summary_off">El botón no se muestra</string>
<string name="revanced_copy_video_url_timestamp_title">Mostrar botón URL de la marca de tiempo</string>
<string name="revanced_copy_video_url_timestamp_summary_on">El botón se muestra. Toque para copiar la URL del vídeo con la marca de tiempo. Toque y mantenga pulsado para copiar el vídeo sin marca de tiempo</string>
<string name="revanced_copy_video_url_timestamp_summary_on">El botón se muestra. Toca para copiar la URL del vídeo con la marca de tiempo. Toca y mantén pulsado para copiar sin la marca de tiempo</string>
<string name="revanced_copy_video_url_timestamp_summary_off">El botón no se muestra</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
@@ -474,10 +471,14 @@ Esta función solo está disponible para dispositivos antiguos"</string>
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
<string name="revanced_swipe_brightness_title">Activar gesto de brillo</string>
<string name="revanced_swipe_brightness_summary_on">Deslizar brillo está habilitado</string>
<string name="revanced_swipe_brightness_summary_off">Deslizar brillo está desactivado</string>
<string name="revanced_swipe_brightness_summary_on">"El deslizamiento de brillo a pantalla completa está habilitado
Ajusta el brillo deslizando verticalmente en el lado izquierdo de la pantalla"</string>
<string name="revanced_swipe_brightness_summary_off">El deslizamiento de brillo a pantalla completa está desactivado</string>
<string name="revanced_swipe_volume_title">Activar gesto de volumen</string>
<string name="revanced_swipe_volume_summary_on">Deslizar volumen está habilitado</string>
<string name="revanced_swipe_volume_summary_on">"Deslizar el volumen en pantalla completa está activado
Ajusta el volumen deslizando verticalmente en el lado derecho de la pantalla"</string>
<string name="revanced_swipe_volume_summary_off">Deslizar volumen está desactivado</string>
<string name="revanced_swipe_press_to_engage_title">Activar gesto de pulsar para deslizar</string>
<string name="revanced_swipe_press_to_engage_summary_on">Pulsar para deslizar está habilitado</string>
@@ -491,16 +492,19 @@ Esta función solo está disponible para dispositivos antiguos"</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_title">Activar gesto de brillo automático</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_on">Deslizar hacia abajo hasta el valor más bajo del gesto de brillo permite el brillo automático</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_off">Deslizar hacia abajo hasta el valor más bajo no habilita el brillo automático</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_overlay_text">Automático</string>
<string name="revanced_swipe_overlay_timeout_title">Tiempo de espera del deslizado</string>
<string name="revanced_swipe_overlay_timeout_summary">La cantidad de milisegundos que la superposición es visible</string>
<string name="revanced_swipe_text_overlay_size_title">Deslizar tamaño de texto superpuesto</string>
<string name="revanced_swipe_text_overlay_size_summary">El tamaño del texto para la capa de deslizamiento</string>
<string name="revanced_swipe_overlay_background_opacity_title">Opacidad del fondo de la superposición de deslizamiento</string>
<string name="revanced_swipe_overlay_background_opacity_summary">Valor de opacidad entre 0-100</string>
<string name="revanced_swipe_overlay_background_opacity_invalid_toast">La opacidad de la superposición de deslizamiento debe estar entre 0 y 100</string>
<string name="revanced_swipe_threshold_title">Umbral de magnitud del deslizamiento</string>
<string name="revanced_swipe_threshold_summary">La cantidad de umbral para que se desliza</string>
<string name="revanced_swipe_show_circular_overlay_title">Mostrar superposición circular</string>
<string name="revanced_swipe_show_circular_overlay_summary_on">Se muestra la superposición circular</string>
<string name="revanced_swipe_show_circular_overlay_summary_off">Se muestra la superposición horizontal</string>
<string name="revanced_swipe_overlay_minimal_style_title">Habilitar estilo minimalista</string>
<string name="revanced_swipe_overlay_minimal_style_summary_on">El estilo de superposición mínima está habilitado</string>
<string name="revanced_swipe_overlay_minimal_style_summary_off">El estilo de superposición mínima está desactivado</string>
<string name="revanced_swipe_change_video_title">Habilita el deslizamiento para cambiar videos</string>
<string name="revanced_swipe_change_video_summary_on">Deslizar en modo de pantalla completa cambiará al video siguiente/anterior</string>
<string name="revanced_swipe_change_video_summary_off">Deslizar en modo de pantalla completa no cambiará al video siguiente/anterior</string>
@@ -513,6 +517,9 @@ Esta función solo está disponible para dispositivos antiguos"</string>
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">Botones de acción</string>
<string name="revanced_hide_buttons_screen_summary">Ocultar o mostrar botones en videos</string>
<string name="revanced_disable_like_subscribe_glow_title">Desactivar el brillo de los botones Me gusta y Suscribirse</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Los botones Me gusta y Suscribirse no brillarán cuando se mencionen</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Los botones Me gusta y Suscribirse brillarán cuando se mencionen</string>
<string name="revanced_hide_like_dislike_button_title">Ocultar me gusta y no me gusta</string>
<string name="revanced_hide_like_dislike_button_summary_on">Botones \"Me gusta\" y \"No me gusta\" están ocultos</string>
<string name="revanced_hide_like_dislike_button_summary_off">Se muestran botones \"Me gusta\" y \"No me gusta\"</string>
@@ -565,12 +572,18 @@ Esta función solo está disponible para dispositivos antiguos"</string>
<string name="revanced_hide_subscriptions_button_title">Ocultar Suscripciones</string>
<string name="revanced_hide_subscriptions_button_summary_on">El botón Suscripciones está oculto</string>
<string name="revanced_hide_subscriptions_button_summary_off">Se muestra el botón Suscripciones</string>
<string name="revanced_hide_notifications_button_title">Ocultar notificaciones</string>
<string name="revanced_hide_notifications_button_summary_on">El botón de notificaciones está oculto</string>
<string name="revanced_hide_notifications_button_summary_off">Se muestra el botón de notificaciones</string>
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_switch_create_with_notifications_button_title">Cambiar Crear con Notificaciones</string>
<string name="revanced_switch_create_with_notifications_button_summary_on">"El botón Crear se cambia por el botón Notificaciones
Nota: Habilitar esto también oculta a la fuerza los anuncios de vídeo"</string>
<string name="revanced_switch_create_with_notifications_button_summary_off">El botón Crear no se cambia con el botón de notificaciones</string>
<string name="revanced_switch_create_with_notifications_button_user_dialog_message">"Deshabilitar este ajuste también deshabilitará el bloqueo de anuncios de Shorts.
Si cambiar este ajuste no tiene efecto, intenta cambiar al modo incógnito."</string>
<string name="revanced_hide_navigation_button_labels_title">Ocultar etiquetas de botón de navegación</string>
<string name="revanced_hide_navigation_button_labels_summary_on">Las etiquetas están ocultas</string>
<string name="revanced_hide_navigation_button_labels_summary_off">Las etiquetas se muestran</string>
@@ -640,7 +653,7 @@ Nota: Habilitar esto también oculta a la fuerza los anuncios de vídeo"</string
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">El pie del menú de calidad de vídeo se muestra</string>
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<string name="revanced_hide_player_previous_next_buttons_title">Ocultar botones de vídeo anteriores &amp; siguiente</string>
<string name="revanced_hide_player_previous_next_buttons_title">Ocultar botones Anterior &amp; Siguiente</string>
<string name="revanced_hide_player_previous_next_buttons_summary_on">Los botones están ocultos</string>
<string name="revanced_hide_player_previous_next_buttons_summary_off">Los botones se muestran</string>
<string name="revanced_hide_cast_button_title">Ocultar el botón Transmitir</string>
@@ -785,10 +798,13 @@ Nota: Habilitar esto también oculta a la fuerza los anuncios de vídeo"</string
<string name="revanced_hide_shorts_navigation_bar_summary_on">Barra de navegación oculta</string>
<string name="revanced_hide_shorts_navigation_bar_summary_off">Se muestra la barra de navegación</string>
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<string name="revanced_disable_suggested_video_end_screen_title">Desactivar pantalla de final de vídeo sugerida</string>
<string name="revanced_disable_suggested_video_end_screen_summary_on">Vídeos sugeridos serán desactivados</string>
<string name="revanced_disable_suggested_video_end_screen_summary_off">Se mostrarán vídeos sugeridos</string>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
<string name="revanced_end_screen_suggested_video_title">Ocultar el vídeo sugerido de la pantalla final</string>
<string name="revanced_end_screen_suggested_video_summary_on">"El vídeo sugerido de la pantalla final se oculta cuando la reproducción automática está desactivada
La reproducción automática se puede cambiar en la configuración de YouTube:
Configuración → Reproducción → Reproducir el siguiente vídeo automáticamente"</string>
<string name="revanced_end_screen_suggested_video_summary_off">Se muestra el vídeo sugerido de la pantalla final</string>
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
<string name="revanced_hide_timestamp_title">Ocultar fecha y hora de vídeo</string>
@@ -1160,7 +1176,7 @@ Si se desactiva posteriormente, se recomienda borrar los datos de la aplicación
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Minireproductor</string>
<string name="revanced_miniplayer_screen_summary">Cambiar el estilo del reproductor minimizado de la aplicación</string>
<string name="revanced_miniplayer_screen_summary">Cambiar el estilo del reproductor minimizado en la aplicación</string>
<string name="revanced_miniplayer_type_title">Tipo de minreproductor</string>
<string name="revanced_miniplayer_type_entry_0">Desactivado</string>
<string name="revanced_miniplayer_type_entry_1">Predeterminado</string>
@@ -1306,8 +1322,8 @@ Habilitar esto puede desbloquear calidades de vídeo más altas"</string>
</patch>
<patch id="misc.links.openLinksExternallyPatch">
<string name="revanced_external_browser_title">Abrir enlaces en el navegador</string>
<string name="revanced_external_browser_summary_on">Abriendo enlaces externamente</string>
<string name="revanced_external_browser_summary_off">Abrir enlaces en la aplicación</string>
<string name="revanced_external_browser_summary_on">Abrir enlaces en el navegador externo</string>
<string name="revanced_external_browser_summary_off">Abrir enlaces en el navegador integrado en la aplicación</string>
</patch>
<patch id="misc.privacy.removeTrackingQueryParameterPatch">
<string name="revanced_remove_tracking_query_parameter_title">Quitar parámetro de consulta de rastreo</string>
@@ -1320,10 +1336,11 @@ Habilitar esto puede desbloquear calidades de vídeo más altas"</string>
<string name="revanced_disable_zoom_haptics_summary_off">Haptics están habilitados</string>
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<string name="revanced_force_original_audio_title">Forzar audio original</string>
<string name="revanced_force_original_audio_summary_on">Utilizando audio original</string>
<string name="revanced_force_original_audio_title">Forzar idioma de audio original</string>
<string name="revanced_force_original_audio_summary_on">Usar el idioma de audio original</string>
<string name="revanced_force_original_audio_summary_off">Utilizando audio predeterminado</string>
<string name="revanced_force_original_audio_not_available">Para usar esta función, cambia la suplantación de stream al tipo de cliente iOS</string>
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
<string name="revanced_force_original_audio_not_available">Para usar esta función, cambia \"Suplantar transmisiones de video\" a iOS TV</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

View File

@@ -82,6 +82,7 @@ Uute keelte tõlkimiseks külastage saiti translate.revanced.app"</string>
<string name="revanced_language_NL">Hollandi</string>
<string name="revanced_language_OR">Odia</string>
<string name="revanced_language_PA">Pandžabi</string>
<string name="revanced_language_PL">Poola</string>
<string name="revanced_language_PT">Portugali</string>
<string name="revanced_language_RO">Rumeenia</string>
<string name="revanced_language_RU">Vene</string>
@@ -167,9 +168,6 @@ Vajutage jätkamise nuppu ja lubage optimeerimismuutused."</string>
Teid ei teavitata ühestki ootamatust sündmusest."</string>
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<string name="revanced_disable_like_subscribe_glow_title">Eemalda Meeldi ja Telli nuppude helk</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Meeldi ja Telli nupud ei heida mainitmisel</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Meeldi ja Telli nupud heidavad mainitmisel</string>
<string name="revanced_hide_album_cards_title">Peida albumikaardid</string>
<string name="revanced_hide_album_cards_summary_on">Albumikaardid on peidetud</string>
<string name="revanced_hide_album_cards_summary_off">Albumikaardid on nähtavad</string>
@@ -303,13 +301,13 @@ Teid ei teavitata ühestki ootamatust sündmusest."</string>
<string name="revanced_hide_description_components_screen_title">Video kirjeldus</string>
<string name="revanced_hide_description_components_screen_summary">Peida videokirjelduse komponendid või kuva need</string>
<string name="revanced_hide_filter_bar_screen_title">Filtriseriba</string>
<string name="revanced_hide_filter_bar_screen_summary">Peida ja kuva filtririba söötes, otsingus ja seotud videotes</string>
<string name="revanced_hide_filter_bar_screen_summary">Peida või näita filtripaneeli voos, otsingutulemustes ja seotud videotes</string>
<string name="revanced_hide_filter_bar_feed_in_feed_title">Peida söötes</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_on">Peidetud söötes</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_off">Näidatud söötes</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Peida otsingus</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Peidetud otsingus</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Näidatakse otsingus</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Peida otsingutulemustes</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Peidetud otsingutulemustes</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Kuvatakse otsingutulemustes</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_title">Peida seotud videotes</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_on">Peidetud seotud videotes</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_off">Näidatakse seotud videotes</string>
@@ -406,7 +404,7 @@ See funktsioon on saadaval ainult vanemates seadmetes"</string>
<string name="revanced_hide_self_sponsor_ads_title">Peida ise-sponsoritud kaardid</string>
<string name="revanced_hide_self_sponsor_ads_summary_on">Ise-sponsoritud kaardid on peidus</string>
<string name="revanced_hide_self_sponsor_ads_summary_off">Ise-sponsoritud kaardid on näidatud</string>
<string name="revanced_hide_products_banner_title">Peida bänner näha tooteid</string>
<string name="revanced_hide_products_banner_title">Peida bänner „Vaata tooteid</string>
<string name="revanced_hide_products_banner_summary_on">Bänner on peidetud</string>
<string name="revanced_hide_products_banner_summary_off">Bänner on nähtav</string>
<string name="revanced_hide_end_screen_store_banner_title">Peida lõpuekraani poe bänner</string>
@@ -445,10 +443,10 @@ See funktsioon on saadaval ainult vanemates seadmetes"</string>
<string name="revanced_share_copy_url_success">URL kopeeritud clipboardi</string>
<string name="revanced_share_copy_url_timestamp_success">Aadres URL ajaga kopeeritud</string>
<string name="revanced_copy_video_url_title">Kuva video URL kopeerimise nupp</string>
<string name="revanced_copy_video_url_summary_on">Nupud on näha. Koputage video URL-i kopeerimiseks. Koputage ja hoidke video URL-i ajatempliga kopeerimiseks</string>
<string name="revanced_copy_video_url_summary_on">Nupp on nähtav. Video URL-i kopeerimiseks puuduta. Ajakoodiga kopeerimiseks puuduta pikalt</string>
<string name="revanced_copy_video_url_summary_off">Nupud ei ole näha</string>
<string name="revanced_copy_video_url_timestamp_title">Näita video URL-i ajatempliga kopeerimise nuppu</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Nupud on näha. Koputage video URL-i ajatempliga kopeerimiseks. Koputage ja hoidke video kopeerimiseks ilma ajatempli</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Nupp on nähtav. Ajakoodiga video URL-i kopeerimiseks puuduta. Ilma ajakoodita kopeerimiseks puuduta pikalt</string>
<string name="revanced_copy_video_url_timestamp_summary_off">Nupud ei ole näha</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
@@ -483,11 +481,15 @@ See funktsioon on saadaval ainult vanemates seadmetes"</string>
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
<string name="revanced_swipe_brightness_title">Luba heleduse žest</string>
<string name="revanced_swipe_brightness_summary_on">Heleduse pühkimine on lubatud</string>
<string name="revanced_swipe_brightness_summary_off">Heleduse pühkimine on keelatud</string>
<string name="revanced_swipe_brightness_summary_on">"Täisekraani heleduse pühkimine on lubatud
Reguleeri heledust ekraani vasakul küljel vertikaalselt pühkides"</string>
<string name="revanced_swipe_brightness_summary_off">Täisekraani heleduse pühkimine on keelatud</string>
<string name="revanced_swipe_volume_title">Luba helitugevuse žest</string>
<string name="revanced_swipe_volume_summary_on">Helitugevuse pühkimine on lubatud</string>
<string name="revanced_swipe_volume_summary_off">Helitugevuse pühkimine on keelatud</string>
<string name="revanced_swipe_volume_summary_on">"Täisekraani helitugevuse pühkimine on lubatud
Helitugevuse reguleerimiseks pühkige ekraani paremal küljel vertikaalselt"</string>
<string name="revanced_swipe_volume_summary_off">Täisekraani helitugevuse pühkimine on keelatud</string>
<string name="revanced_swipe_press_to_engage_title">Luba pühkimise žest vajutamisega</string>
<string name="revanced_swipe_press_to_engage_summary_on">Pühkimise žest vajutamisega on lubatud</string>
<string name="revanced_swipe_press_to_engage_summary_off">Pühkimise žest vajutamisega on keelatud</string>
@@ -500,16 +502,19 @@ See funktsioon on saadaval ainult vanemates seadmetes"</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_title">Luba automaatse heleduse žest</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_on">Pühkige alla heleduse žesti madalaima väärtuseni, et lubada automaatne heleduse</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_off">Pühkimine alla madalaima väärtuseni ei luba automaatset heleduse</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_overlay_text">Automaatne</string>
<string name="revanced_swipe_overlay_timeout_title">Pühkimise katte aegumisaeg</string>
<string name="revanced_swipe_overlay_timeout_summary">Katte näitamise millisekundite arv</string>
<string name="revanced_swipe_text_overlay_size_title">Pühkimise katte teksti suurus</string>
<string name="revanced_swipe_text_overlay_size_summary">Pühkimise katte teksti suurus</string>
<string name="revanced_swipe_overlay_background_opacity_title">Pühkiva katte tausta läbipaistvus</string>
<string name="revanced_swipe_overlay_background_opacity_summary">Läbipaistvuse väärtus vahemikus 0-100</string>
<string name="revanced_swipe_overlay_background_opacity_invalid_toast">Pühkiva katte läbipaistvus peab olema vahemikus 0-100</string>
<string name="revanced_swipe_threshold_title">Pühkimise suuruse lävi</string>
<string name="revanced_swipe_threshold_summary">Lävi väärtus pühkimise toimimiseks</string>
<string name="revanced_swipe_show_circular_overlay_title">Kuva ümmargune ülekattekiht</string>
<string name="revanced_swipe_show_circular_overlay_summary_on">Ümmargune ülekattekiht on nähtav</string>
<string name="revanced_swipe_show_circular_overlay_summary_off">Horisontaalne ülekattekiht on nähtav</string>
<string name="revanced_swipe_overlay_minimal_style_title">Luba minimaalne stiil</string>
<string name="revanced_swipe_overlay_minimal_style_summary_on">Minimaalne kattekihi stiil on lubatud</string>
<string name="revanced_swipe_overlay_minimal_style_summary_off">Minimaalne ülekattekihi stiil on keelatud</string>
<string name="revanced_swipe_change_video_title">Luba pühkimine videote vahetamiseks</string>
<string name="revanced_swipe_change_video_summary_on">Täisekraanrežiimis pühkimine vahetab järgmise/eelmise video</string>
<string name="revanced_swipe_change_video_summary_off">Täisekraanrežiimis pühkimine ei vaheta järgmise/eelmise video</string>
@@ -522,6 +527,9 @@ See funktsioon on saadaval ainult vanemates seadmetes"</string>
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">Tegevuse nupud</string>
<string name="revanced_hide_buttons_screen_summary">Peida või näita videote all olevaid nuppe</string>
<string name="revanced_disable_like_subscribe_glow_title">Eemalda Meeldi ja Telli nuppude helk</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Meeldi ja Telli nupud ei heida mainitmisel</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Meeldi ja Telli nupud heidavad mainitmisel</string>
<string name="revanced_hide_like_dislike_button_title">Peida Meeldib ja Ei meeldi</string>
<string name="revanced_hide_like_dislike_button_summary_on">Meeldib ja Ei meeldi nupud on peidetud</string>
<string name="revanced_hide_like_dislike_button_summary_off">Meeldib ja Ei meeldi nupud on nähtavad</string>
@@ -574,12 +582,18 @@ See funktsioon on saadaval ainult vanemates seadmetes"</string>
<string name="revanced_hide_subscriptions_button_title">Peida Tellimuste</string>
<string name="revanced_hide_subscriptions_button_summary_on">Tellimuste nupp on peidetud</string>
<string name="revanced_hide_subscriptions_button_summary_off">Tellimuste nupp on nähtav</string>
<string name="revanced_hide_notifications_button_title">Peida teavitused</string>
<string name="revanced_hide_notifications_button_summary_on">Teavituste nupp on peidetud</string>
<string name="revanced_hide_notifications_button_summary_off">Teavituste nupp on nähtav</string>
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_switch_create_with_notifications_button_title">Vaheta Loo ja Teated</string>
<string name="revanced_switch_create_with_notifications_button_summary_on">"Looda nupp on vahetatud teavituste nupuga
Märkus: selle lubamine peidab ka sunniviisiliselt video reklaamid"</string>
<string name="revanced_switch_create_with_notifications_button_summary_off">Loo nuppu ei ole vahetatud Teadete nupuga</string>
<string name="revanced_switch_create_with_notifications_button_user_dialog_message">"Selle sätte keelamine keelab ka Shorts reklaamide blokeerimise.
Kui selle sätte muutmine ei avalda mõju, proovige lülituda Inkognito režiimile."</string>
<string name="revanced_hide_navigation_button_labels_title">Peida navigeerimisnupude sildistused</string>
<string name="revanced_hide_navigation_button_labels_summary_on">Sildistused on peidetud</string>
<string name="revanced_hide_navigation_button_labels_summary_off">Sildistused on nähtavad</string>
@@ -649,7 +663,7 @@ Märkus: selle lubamine peidab ka sunniviisiliselt video reklaamid"</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">Video kvaliteedi menüü jalg on nähtav</string>
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<string name="revanced_hide_player_previous_next_buttons_title">Peida eelmine &amp; järgmine video nupp</string>
<string name="revanced_hide_player_previous_next_buttons_title">Peida eelmine &amp; järgmine nupp</string>
<string name="revanced_hide_player_previous_next_buttons_summary_on">Nupud on peidetud</string>
<string name="revanced_hide_player_previous_next_buttons_summary_off">Nupud on nähtavad</string>
<string name="revanced_hide_cast_button_title">Peida Saada kätte nupp</string>
@@ -794,10 +808,13 @@ Märkus: selle lubamine peidab ka sunniviisiliselt video reklaamid"</string>
<string name="revanced_hide_shorts_navigation_bar_summary_on">Navigeerimisriba on peidetud</string>
<string name="revanced_hide_shorts_navigation_bar_summary_off">Navigeerimisriba on nähtav</string>
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<string name="revanced_disable_suggested_video_end_screen_title">Keela soovitatud video lõpueri</string>
<string name="revanced_disable_suggested_video_end_screen_summary_on">Soovitatud videod keelatakse</string>
<string name="revanced_disable_suggested_video_end_screen_summary_off">Soovitatud videod on nähtavad</string>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
<string name="revanced_end_screen_suggested_video_title">Peida lõpuekraani soovitatud video</string>
<string name="revanced_end_screen_suggested_video_summary_on">"Lõpuekraani soovitatud video on peidetud, kui automaatesitus on välja lülitatud.
Automaatesitust saab muuta YouTube'i seadetes:
Seaded → Taasesitus → Esita järgmine video automaatselt"</string>
<string name="revanced_end_screen_suggested_video_summary_off">Lõpuekraani soovitatud video on näidatud</string>
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
<string name="revanced_hide_timestamp_title">Peida video ajamärk</string>
@@ -1178,7 +1195,7 @@ Kui see hiljem välja lülitatakse, on soovitatav rakenduse andmed kustutada, et
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Minimängija</string>
<string name="revanced_miniplayer_screen_summary">Muuda rakenduses minimeeritud esitaja stiili</string>
<string name="revanced_miniplayer_screen_summary">Muuda rakendusesisese minipleieri stiili</string>
<string name="revanced_miniplayer_type_title">Miniplayeri tüüp</string>
<string name="revanced_miniplayer_type_entry_0">Väljas</string>
<string name="revanced_miniplayer_type_entry_1">Vaikimisi</string>
@@ -1324,8 +1341,8 @@ Selle lubamine võib avada kõrgema video kvaliteedi"</string>
</patch>
<patch id="misc.links.openLinksExternallyPatch">
<string name="revanced_external_browser_title">Ava lingid brauseris</string>
<string name="revanced_external_browser_summary_on">Lingid avatakse välistel</string>
<string name="revanced_external_browser_summary_off">Lingid avatakse rakenduses</string>
<string name="revanced_external_browser_summary_on">Linkide avamine välises brauseris</string>
<string name="revanced_external_browser_summary_off">Linkide avamine rakendusesiseses brauseris</string>
</patch>
<patch id="misc.privacy.removeTrackingQueryParameterPatch">
<string name="revanced_remove_tracking_query_parameter_title">Eemalda jälgimise päringuparameeter</string>
@@ -1338,10 +1355,11 @@ Selle lubamine võib avada kõrgema video kvaliteedi"</string>
<string name="revanced_disable_zoom_haptics_summary_off">Hääled on lubatud</string>
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<string name="revanced_force_original_audio_title">Sunni originaalheli</string>
<string name="revanced_force_original_audio_summary_on">Kasutatakse originaalheli</string>
<string name="revanced_force_original_audio_title">Sunni originaalheli keel</string>
<string name="revanced_force_original_audio_summary_on">Algse helikeele kasutamine</string>
<string name="revanced_force_original_audio_summary_off">Kasutan vaikeheli</string>
<string name="revanced_force_original_audio_not_available">Selle funktsiooni kasutamiseks muutke voo esindamine iOS-i kliendi tüübiks</string>
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
<string name="revanced_force_original_audio_not_available">Selle funktsiooni kasutamiseks muuda valik „Pettemanööver videovoogudele” iOS TV peale</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

View File

@@ -130,7 +130,7 @@ Second \"item\" text"</string>
<!-- 'remix' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'share' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
<patch id="misc.zoomhaptics.zoomHapticsPatch">
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

View File

@@ -130,7 +130,7 @@ Second \"item\" text"</string>
<!-- 'remix' should be translated using the same localized wording YouTube displays for the button. -->
<!-- 'share' should be translated using the same localized wording YouTube displays for the button. -->
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
</patch>
@@ -206,6 +206,7 @@ Second \"item\" text"</string>
<patch id="misc.zoomhaptics.zoomHapticsPatch">
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

View File

@@ -168,9 +168,6 @@ Napauta jatka-painiketta ja salli optimoinnin muutokset."</string>
Et saa ilmoituksia odottamattomista tapahtumista."</string>
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<string name="revanced_disable_like_subscribe_glow_title">Poista Tykkää- ja Tilaa-painikkeiden hehku</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Tykkää- ja Tilaa-painikkeet eivät hehku mainittaessa</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Tykkää- ja Tilaa-painikkeet hehkuvat mainittaessa</string>
<string name="revanced_hide_album_cards_title">Piilota albumikortit</string>
<string name="revanced_hide_album_cards_summary_on">Albumikortit on piilotettu</string>
<string name="revanced_hide_album_cards_summary_off">Albumikortit näytetään</string>
@@ -240,6 +237,7 @@ Et saa ilmoituksia odottamattomista tapahtumista."</string>
<string name="revanced_hide_community_guidelines_title">Piilota yhteisön säännöt</string>
<string name="revanced_hide_community_guidelines_summary_on">Yhteisön säännöt on piilotettu</string>
<string name="revanced_hide_community_guidelines_summary_off">Yhteisön säännöt näytetään</string>
<string name="revanced_hide_subscribers_community_guidelines_title">Piilota tilaajien ohjeet</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_on">Tilaajien yhteisön säännöt on piilotettu</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_off">Tilaajien yhteisön säännöt näytetään</string>
<string name="revanced_hide_channel_member_shelf_title">Piilota kanavan jäsen -hylly</string>
@@ -278,10 +276,24 @@ Et saa ilmoituksia odottamattomista tapahtumista."</string>
<string name="revanced_hide_artist_cards_title">Piilota artistikortit</string>
<string name="revanced_hide_artist_cards_summary_on">Artistikortit on piilotettu</string>
<string name="revanced_hide_artist_cards_summary_off">Artistikortit näytetään</string>
<string name="revanced_hide_attributes_section_summary_on">Esitellyt paikat, Pelit, Musiikki ja Mainitut ihmiset -osiot on piilotettu</string>
<string name="revanced_hide_attributes_section_summary_off">Esitellyt paikat, Pelit, Musiikki ja Mainitut ihmiset -osiot näytetään</string>
<string name="revanced_hide_chapters_section_title">Piilota Videon osat</string>
<string name="revanced_hide_chapters_section_summary_on">Videon osat -osio on piilotettu</string>
<string name="revanced_hide_chapters_section_summary_off">Videon osat -osio näytetään</string>
<string name="revanced_hide_how_this_was_made_section_title">Piilota \"Miten sisältö on luotu\"</string>
<string name="revanced_hide_how_this_was_made_section_summary_on">Miten sisältö on luotu -osio on piilotettu</string>
<string name="revanced_hide_how_this_was_made_section_summary_off">Miten sisältö on luotu -osio näytetään</string>
<string name="revanced_hide_podcast_section_title">Piilota \"Tutustu podcastiin\"</string>
<string name="revanced_hide_podcast_section_summary_on">Tutustu podcastiin -osio on piilotettu</string>
<string name="revanced_hide_podcast_section_summary_off">Tutustu podcastiin -osio näytetään</string>
<string name="revanced_hide_info_cards_section_title">Piilota tietokortit</string>
<string name="revanced_hide_info_cards_section_summary_on">Infokortit-osio on piilotettu</string>
<string name="revanced_hide_info_cards_section_summary_off">Infokortit-osio näytetään</string>
<string name="revanced_hide_key_concepts_section_title">Piilota \"Keskeiset käsitteet\"</string>
<string name="revanced_hide_key_concepts_section_summary_on">Keskeiset käsitteet -osio on piilotettu</string>
<string name="revanced_hide_key_concepts_section_summary_off">Keskeiset käsitteet -osio näytetään</string>
<string name="revanced_hide_transcript_section_title">Piilota transkriptio</string>
<string name="revanced_hide_transcript_section_summary_on">Transkriptio-osio on piilotettu</string>
<string name="revanced_hide_transcript_section_summary_off">Transkriptio-osio näytetään</string>
<string name="revanced_hide_description_components_screen_title">Videon kuvaus</string>
@@ -291,19 +303,29 @@ Et saa ilmoituksia odottamattomista tapahtumista."</string>
<string name="revanced_hide_filter_bar_feed_in_feed_title">Piilota syötteessä</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_on">Piilotettu syötteessä</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_off">Näytetään syötteessä</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Piilota haussa</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Piilotettu haussa</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Näytetään haussa</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Piilota hakutuloksissa</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Piilotettu hakutuloksissa</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Näytetään hakutuloksissa</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_title">Piilota liittyvissä videoissa</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_on">Piilotettu liittyvissä videoissa</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_off">Näytetään liittyvissä videoissa</string>
<string name="revanced_comments_screen_title">Kommentit</string>
<string name="revanced_comments_screen_summary">Piilota tai näytä kommenttiosion osia</string>
<string name="revanced_hide_comments_chat_summary_title">Piilota \"Chat-yhteenveto\"</string>
<string name="revanced_hide_comments_chat_summary_summary_on">Chat-yhteenveto on piilotettu</string>
<string name="revanced_hide_comments_chat_summary_summary_off">Chat-yhteenveto näytetään</string>
<string name="revanced_hide_comments_by_members_header_title">Piilota \"Jäsenten kommentit\" -ylätunniste</string>
<string name="revanced_hide_comments_by_members_header_summary_on">Jäsenten kommentit -ylätunniste on piilotettu</string>
<string name="revanced_hide_comments_by_members_header_summary_off">Jäsenten kommentit -ylätunniste näytetään</string>
<string name="revanced_hide_comments_section_title">Piilota kommenttiosio</string>
<string name="revanced_hide_comments_section_summary_on">Kommenttiosio on piilotettu</string>
<string name="revanced_hide_comments_section_summary_off">Kommenttiosio näytetään</string>
<string name="revanced_hide_comments_create_a_short_button_title">Piilota \"Luo Shorts-video\" -painike</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Luo Shorts-video -painike on piilotettu</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Luo Shorts-video -painike näytetään</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Piilota emoji- ja aikaleima-painikkeet</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Emoji- ja aikaleima-painikkeet on piilotettu</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Emoji- ja aikaleima-painikkeet näytetään</string>
<string name="revanced_hide_comments_preview_comment_title">Piilota kommentin esikatselu</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Kommentin esikatselu on piilotettu</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Kommentin esikatselu näytetään</string>
@@ -380,7 +402,6 @@ Tämä ominaisuus on käytettävissä vain vanhemmilla laitteilla"</string>
<string name="revanced_hide_self_sponsor_ads_title">Piilota itse-sponsoroidut kortit</string>
<string name="revanced_hide_self_sponsor_ads_summary_on">Itse-sponsoroidut kortit ovat piilotettu</string>
<string name="revanced_hide_self_sponsor_ads_summary_off">Itse-sponsoroidut kortit näytetään</string>
<string name="revanced_hide_products_banner_title">Piilota tuotebanneri</string>
<string name="revanced_hide_products_banner_summary_on">Banneri on piilotettu</string>
<string name="revanced_hide_products_banner_summary_off">Banneri näytetään</string>
<string name="revanced_hide_end_screen_store_banner_title">Piilota loppunäytön kauppabanneri</string>
@@ -390,8 +411,12 @@ Tämä ominaisuus on käytettävissä vain vanhemmilla laitteilla"</string>
<string name="revanced_hide_player_store_shelf_summary_on">Tuotehylly on piilotettu</string>
<string name="revanced_hide_player_store_shelf_summary_off">Tuotehylly näytetään</string>
<string name="revanced_hide_shopping_links_title">Piilota kauppalinkit</string>
<string name="revanced_hide_shopping_links_summary_on">Shopping-linkit on piilotettu videoiden kuvauksissa</string>
<string name="revanced_hide_shopping_links_summary_off">Shopping-linkit näytetään videoiden kuvauksissa</string>
<!-- 'Visit store' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_visit_store_button_title">Piilota \"Vieraile kaupassa\" -painike kanavasivuilla</string>
<string name="revanced_hide_visit_store_button_summary_on">Painike on piilotettu kanavasivuilla</string>
<string name="revanced_hide_visit_store_button_summary_off">Painike näytetään kanavasivuilla</string>
<string name="revanced_hide_web_search_results_title">Piilota verkkohakutulokset</string>
<string name="revanced_hide_web_search_results_summary_on">Verkkohakutulokset on piilotettu</string>
<string name="revanced_hide_web_search_results_summary_off">Verkkohakutulokset näytetään</string>
@@ -415,10 +440,10 @@ Tämä ominaisuus on käytettävissä vain vanhemmilla laitteilla"</string>
<string name="revanced_share_copy_url_success">URL-osoite kopioitiin leikepöydälle</string>
<string name="revanced_share_copy_url_timestamp_success">Aikaleimattu URL-osoite kopioitiin</string>
<string name="revanced_copy_video_url_title">Näytä videon URL-osoitteen kopiointipainike</string>
<string name="revanced_copy_video_url_summary_on">Painike näytetään. Napauta kopioidaksesi videon URL-osoitteen. Napauta ja pidä pohjassa kopioidaksesi aikaleimatun URL-osoitteen</string>
<string name="revanced_copy_video_url_summary_on">Painike näytetään. Napauta kopioidaksesi videon URL-osoitteen. Napauta ja pidä pohjassa kopioidaksesi aikaleimattuna</string>
<string name="revanced_copy_video_url_summary_off">Painiketta ei näytetä</string>
<string name="revanced_copy_video_url_timestamp_title">Näytä videon aikaleimatun URL-osoitteen kopiointipainike</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Painike näytetään. Napauta kopioidaksesi videon aikaleimatun URL-osoitteen. Napauta ja pidä pohjassa kopioidaksesi URL-osoitteen ilman aikaleimaa</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Painike näytetään. Napauta kopioidaksesi videon URL-osoitteen aikaleimattuna. Napauta ja pidä pohjassa kopioidaksesi ilman aikaleimaa</string>
<string name="revanced_copy_video_url_timestamp_summary_off">Painiketta ei näytetä</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
@@ -431,6 +456,8 @@ Tämä ominaisuus on käytettävissä vain vanhemmilla laitteilla"</string>
<string name="revanced_external_downloader_screen_title">Ulkoiset lataukset</string>
<string name="revanced_external_downloader_screen_summary">Asetukset ulkoisen lataajan käyttämiselle</string>
<string name="revanced_external_downloader_title">Näytä ulkoinen lataus -painike</string>
<string name="revanced_external_downloader_summary_on">Lataa-painike näytetään soittimessa</string>
<string name="revanced_external_downloader_summary_off">Lataa-painike on piilotettu soittimessa</string>
<!-- 'download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title' -->
<string name="revanced_external_downloader_action_button_title">Korvaa Lataa-toimintopainike</string>
<string name="revanced_external_downloader_action_button_summary_on">Lataa-painike avaa ulkoisen lataajan</string>
@@ -451,11 +478,15 @@ Tämä ominaisuus on käytettävissä vain vanhemmilla laitteilla"</string>
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
<string name="revanced_swipe_brightness_title">Ota kirkkauden ele käyttöön</string>
<string name="revanced_swipe_brightness_summary_on">Kirkkauden pyyhkäisy on käytössä</string>
<string name="revanced_swipe_brightness_summary_off">Kirkkauden pyyhkäisy ei ole käytössä</string>
<string name="revanced_swipe_brightness_summary_on">"Koko näytön kirkkauden pyyhkäisy on käytössä
Säädä kirkkautta pyyhkäisemällä pystysuoraan näytön vasemmalla puolella"</string>
<string name="revanced_swipe_brightness_summary_off">Koko näytön kirkkauden pyyhkäisy ei ole käytössä</string>
<string name="revanced_swipe_volume_title">Ota äänenvoimakkuuden ele käyttöön</string>
<string name="revanced_swipe_volume_summary_on">Äänenvoimakkuuden pyyhkäisy on käytössä</string>
<string name="revanced_swipe_volume_summary_off">Äänenvoimakkuuden pyyhkäisy ei ole käytössä</string>
<string name="revanced_swipe_volume_summary_on">"Koko näytön äänenvoimakkuuden pyyhkäisy on käytössä
Säädä äänenvoimakkuutta pyyhkäisemällä pystysuoraan näytön oikealta puolella"</string>
<string name="revanced_swipe_volume_summary_off">Koko näytön äänenvoimakkuuden pyyhkäisy ei ole käytössä</string>
<string name="revanced_swipe_press_to_engage_title">Ota pyyhkäise painamalla -ele käyttöön</string>
<string name="revanced_swipe_press_to_engage_summary_on">Pyyhkäise painamalla -ele on käytössä</string>
<string name="revanced_swipe_press_to_engage_summary_off">Pyyhkäise painamalla -ele ei ole käytössä</string>
@@ -468,16 +499,19 @@ Tämä ominaisuus on käytettävissä vain vanhemmilla laitteilla"</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_title">Ota automaattisen kirkkauden ele käyttöön</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_on">Automaattinen kirkkaus otetaan käyttöön pyyhkäisemällä alhaisimpaan arvoon</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_summary_off">Pienimpään arvoon alas pyyhkäiseminen ei ota käyttöön automaattista kirkkautta</string>
<string name="revanced_swipe_lowest_value_enable_auto_brightness_overlay_text">Automaattinen</string>
<string name="revanced_swipe_overlay_timeout_title">Pyyhkäisyikkunan aikakatkaisu</string>
<string name="revanced_swipe_overlay_timeout_summary">Kuinka monta millisekuntia ikkuna on näkyvissä</string>
<string name="revanced_swipe_text_overlay_size_title">Pyyhkäisyikkunan tekstin koko</string>
<string name="revanced_swipe_text_overlay_size_summary">Pyyhkäisyikkunan tekstin koko</string>
<string name="revanced_swipe_overlay_background_opacity_title">Pyyhkäisypeittokuvan taustan läpinäkymättömyys</string>
<string name="revanced_swipe_overlay_background_opacity_summary">Läpinäkymättömyysarvo 0100 välillä</string>
<string name="revanced_swipe_overlay_background_opacity_invalid_toast">Pyyhkäisyn läpinäkymättömyyden on oltava välillä 0100</string>
<string name="revanced_swipe_threshold_title">Pyyhkäisyn kynnysraja</string>
<string name="revanced_swipe_threshold_summary">Pyyhkäisyä varten tarvittavan kynnyksen määrä</string>
<string name="revanced_swipe_show_circular_overlay_title">Näytä pyöreä peittokuva</string>
<string name="revanced_swipe_show_circular_overlay_summary_on">Pyöreä peittokuva näytetään</string>
<string name="revanced_swipe_show_circular_overlay_summary_off">Vaakasuora peittokuva näytetään</string>
<string name="revanced_swipe_overlay_minimal_style_title">Käytä minimaalista tyyliä</string>
<string name="revanced_swipe_overlay_minimal_style_summary_on">Minimaalinen peittokuva on käytössä</string>
<string name="revanced_swipe_overlay_minimal_style_summary_off">Minimaalinen peittokuva ei ole käytössä</string>
<string name="revanced_swipe_change_video_title">Ota videon vaihto pyyhkäisemällä käyttöön</string>
<string name="revanced_swipe_change_video_summary_on">Pyyhkäisemällä kokoruututilassa siirrytään seuraavaan/edelliseen videoon</string>
<string name="revanced_swipe_change_video_summary_off">Pyyhkäisemällä kokoruututilassa ei siirrytä seuraavaan/edelliseen videoon</string>
@@ -490,6 +524,9 @@ Tämä ominaisuus on käytettävissä vain vanhemmilla laitteilla"</string>
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">Toimintopainikkeet</string>
<string name="revanced_hide_buttons_screen_summary">Piilota tai näytä painikkeet videoiden alla</string>
<string name="revanced_disable_like_subscribe_glow_title">Poista Tykkää- ja Tilaa-painikkeiden hehku</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Tykkää- ja Tilaa-painikkeet eivät hehku mainittaessa</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Tykkää- ja Tilaa-painikkeet hehkuvat mainittaessa</string>
<string name="revanced_hide_like_dislike_button_title">Piilota Tykkää ja En tykkää</string>
<string name="revanced_hide_like_dislike_button_summary_on">Tykkää- ja En tykkää -painikkeet on piilotettu</string>
<string name="revanced_hide_like_dislike_button_summary_off">Tykkää- ja En tykkää -painikkeet näytetään</string>
@@ -542,12 +579,18 @@ Tämä ominaisuus on käytettävissä vain vanhemmilla laitteilla"</string>
<string name="revanced_hide_subscriptions_button_title">Piilota Tilaukset</string>
<string name="revanced_hide_subscriptions_button_summary_on">Tilaukset-painike on piilotettu</string>
<string name="revanced_hide_subscriptions_button_summary_off">Tilaukset-painike näytetään</string>
<string name="revanced_hide_notifications_button_title">Piilota Ilmoitukset</string>
<string name="revanced_hide_notifications_button_summary_on">Ilmoitukset-painike on piilotettu</string>
<string name="revanced_hide_notifications_button_summary_off">Ilmoitukset-painike näytetään</string>
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_switch_create_with_notifications_button_title">Vaihda Luo ja Ilmoitukset</string>
<string name="revanced_switch_create_with_notifications_button_summary_on">"Luo- ja Ilmoitukset-painikkeet vaihdetaan
Huomaa: Tämä piilottaa väkisin myös videomainokset"</string>
<string name="revanced_switch_create_with_notifications_button_summary_off">Luo- ja Ilmoitukset-painikkeita ei vaihdeta</string>
<string name="revanced_switch_create_with_notifications_button_user_dialog_message">"Tämän asetuksen poistaminen käytöstä poistaa myös Shorts-mainosten eston käytöstä.
Jos tämän asetuksen muuttaminen ei tule voimaan, kokeile vaihtaa Incognito-tilaan."</string>
<string name="revanced_hide_navigation_button_labels_title">Piilota navigointipainikkeiden tunnisteet</string>
<string name="revanced_hide_navigation_button_labels_summary_on">Tunnisteet on piilotettu</string>
<string name="revanced_hide_navigation_button_labels_summary_off">Tunnisteet näytetään</string>
@@ -617,7 +660,6 @@ Huomaa: Tämä piilottaa väkisin myös videomainokset"</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">Videolaatuvalikon alatunniste näytetään</string>
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<string name="revanced_hide_player_previous_next_buttons_title">Piilota edellinen- ja seuraava video -painikkeet</string>
<string name="revanced_hide_player_previous_next_buttons_summary_on">Painikkeet on piilotettu</string>
<string name="revanced_hide_player_previous_next_buttons_summary_off">Painikkeet näytetään</string>
<string name="revanced_hide_cast_button_title">Piilota Cast-painike</string>
@@ -762,10 +804,13 @@ Huomaa: Tämä piilottaa väkisin myös videomainokset"</string>
<string name="revanced_hide_shorts_navigation_bar_summary_on">Navigointipalkki on piilotettu</string>
<string name="revanced_hide_shorts_navigation_bar_summary_off">Navigointipalkki näytetään</string>
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<string name="revanced_disable_suggested_video_end_screen_title">Poista loppunäytön videoehdotukset käytöstä</string>
<string name="revanced_disable_suggested_video_end_screen_summary_on">Ehdotetut videot on piilotettu</string>
<string name="revanced_disable_suggested_video_end_screen_summary_off">Ehdotetut videot näytetään</string>
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
<string name="revanced_end_screen_suggested_video_title">Piilota loppunäytön ehdotettu video</string>
<string name="revanced_end_screen_suggested_video_summary_on">"Loppunäytön ehdotettu video on piilotettu, kun automaattinen toisto ei ole käytössä
Automaattista toistoa voidaan muuttaa YouTube-asetuksissa:
Asetukset → Toisto → Toista seuraava video automaattisesti"</string>
<string name="revanced_end_screen_suggested_video_summary_off">Loppunäytön ehdotettu video näytetään</string>
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
<string name="revanced_hide_timestamp_title">Piilota videon aikaleima</string>
@@ -798,6 +843,7 @@ Huomaa: Tämä piilottaa väkisin myös videomainokset"</string>
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<string name="revanced_ryd_failure_connection_timeout">Ei-tykkäykset eivät ole tilapäisesti käytettävissä</string>
<string name="revanced_ryd_failure_connection_status_code">Ei-tykkäykset eivät ole saatavilla (tila %d)</string>
<string name="revanced_ryd_failure_client_rate_limit_requested">Ei-tykkäykset eivät ole saatavilla (asiakkaan API-raja)</string>
<string name="revanced_ryd_failure_generic">Ei-tykkäykset eivät ole saatavilla (%s)</string>
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<string name="revanced_ryd_failure_ryd_enabled_while_playing_video_then_user_voted">Lataa video uudelleen äänestääksesi Return YouTube Dislikellä</string>
@@ -806,7 +852,14 @@ Huomaa: Tämä piilottaa väkisin myös videomainokset"</string>
<string name="revanced_ryd_enable_summary_on">Ei-tykkäykset näytetään</string>
<string name="revanced_ryd_enable_summary_off">Ei-tykkäyksiä ei näytetä</string>
<string name="revanced_ryd_shorts_title">Näytä ei-tykkykset Shortseissa</string>
<string name="revanced_ryd_shorts_summary_on">Ei-tykkäykset näytetään Shortseissa</string>
<string name="revanced_ryd_shorts_summary_on_disclaimer">"Ei-tykkäykset näytetään Shortseissa
Rajoitus: Ei-tykkäykset eivät välttämättä näy incognito-tilassa"</string>
<string name="revanced_ryd_shorts_summary_off">Ei-tykkäyksiä ei näytetä Shortseissa</string>
<string name="revanced_ryd_dislike_percentage_title">Ei-tykkäykset prosentteina</string>
<string name="revanced_ryd_dislike_percentage_summary_on">Ei-tykkäykset näytetään prosenttina</string>
<string name="revanced_ryd_dislike_percentage_summary_off">Ei-tykkäykset näytetään numerona</string>
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button' -->
<string name="revanced_ryd_compact_layout_title">Kompakti Tykkää-painike</string>
<string name="revanced_ryd_compact_layout_summary_on">Tykkää-painike on muotoiltu mahdollisimman kapeaksi</string>
@@ -1024,6 +1077,7 @@ Oletko valmis lähettämään?"</string>
<string name="revanced_sb_new_segment_edit_by_hand_parse_error">Annettu aika on virheellinen</string>
<string name="revanced_sb_stats">Tilastot</string>
<!-- Shown in the settings preferences, and translations can be any text length. -->
<string name="revanced_sb_stats_connection_failure">Tilastot eivät tilapäisesti saatavilla (API ei ole käytettävissä)</string>
<string name="revanced_sb_stats_loading">Ladataan...</string>
<string name="revanced_sb_stats_sb_disabled">SponsorBlock ei ole käytössä</string>
<string name="revanced_sb_stats_username">Käyttäjänimesi: &lt;b&gt;%s&lt;/b&gt;</string>
@@ -1137,7 +1191,6 @@ Jos tämä poistetaan myöhemmin käytöstä, on suositeltavaa tyhjentää sovel
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Minisoitin</string>
<string name="revanced_miniplayer_screen_summary">Muuta sovelluksen sisäisen pienennetyn soittimen tyyliä</string>
<string name="revanced_miniplayer_type_title">Minisoittimen tyyppi</string>
<string name="revanced_miniplayer_type_entry_0">Pois käytöstä</string>
<string name="revanced_miniplayer_type_entry_1">Oletus</string>
@@ -1283,8 +1336,6 @@ Tämä voi avata korkealaatuisemmat videot"</string>
</patch>
<patch id="misc.links.openLinksExternallyPatch">
<string name="revanced_external_browser_title">Avaa linkit selaimessa</string>
<string name="revanced_external_browser_summary_on">Linkit avataan ulkoisesti</string>
<string name="revanced_external_browser_summary_off">Linkit avataan sovelluksessa</string>
</patch>
<patch id="misc.privacy.removeTrackingQueryParameterPatch">
<string name="revanced_remove_tracking_query_parameter_title">Poista seurantakyselyparametrit</string>
@@ -1297,10 +1348,11 @@ Tämä voi avata korkealaatuisemmat videot"</string>
<string name="revanced_disable_zoom_haptics_summary_off">Haptiikka on käytössä</string>
</patch>
<patch id="video.audio.forceOriginalAudioPatch">
<string name="revanced_force_original_audio_title">Pakota alkuperäinen ääni</string>
<string name="revanced_force_original_audio_title">Pakota alkuperäinen äänen kieli</string>
<string name="revanced_force_original_audio_summary_on">Käytetään alkuperäistä ääntä</string>
<string name="revanced_force_original_audio_summary_off">Käytetään oletusääntä</string>
<string name="revanced_force_original_audio_not_available">Käytä tätä ominaisuutta vaihtamalla virran naamiointi iOS-asiakastyyppiiin</string>
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
<string name="revanced_force_original_audio_not_available">Voit käyttää tätä ominaisuutta muuttamalla \"Naamioi videovirrat\" iOS TV:ksi</string>
</patch>
<patch id="video.quality.rememberVideoQualityPatch">
<!-- Translations should use the same text as revanced_custom_playback_speeds_auto -->

Some files were not shown because too many files have changed in this diff Show More