Compare commits

...

60 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
semantic-release-bot
c89538c8f5 chore: Release v5.13.0-dev.1 [skip ci]
# [5.13.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.12.0...v5.13.0-dev.1) (2025-02-18)

### Bug Fixes

* **YouTube - Hide layout components:** Do not hide 'Show anyway' button in search results ([94fb367](94fb367618))

### Features

* **YouTube - Swipe controls:** Swipe controls UI improvements ([#4422](https://github.com/ReVanced/revanced-patches/issues/4422)) ([3548359](354835966d))
2025-02-18 07:11:45 +00:00
LisoUseInAIKyrios
94fb367618 fix(YouTube - Hide layout components): Do not hide 'Show anyway' button in search results 2025-02-18 09:08:37 +02:00
MarcaD
354835966d feat(YouTube - Swipe controls): Swipe controls UI improvements (#4422) 2025-02-18 09:07:28 +02:00
github-actions[bot]
168f9b769e chore: Sync translations (#4472) 2025-02-18 09:06:39 +02:00
ILoveOpenSourceApplications
e4c4b3a73a refactor(YouTube): Use more consistent strings (#4376) 2025-02-17 10:07:24 +02:00
182 changed files with 7765 additions and 4874 deletions

View File

@@ -1,3 +1,178 @@
## [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)
### Bug Fixes
* **YouTube - Hide layout components:** Do not hide 'Show anyway' button in search results ([4ac8854](https://github.com/ReVanced/revanced-patches/commit/4ac8854b99808a8957f3b0b7438e1e0cdedffbaf))
### Features
* **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.12.0](https://github.com/ReVanced/revanced-patches/compare/v5.11.0...v5.12.0) (2025-02-17)

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

@@ -5,8 +5,6 @@ dependencies {
}
android {
compileSdk = 33 // TODO: Update Swipe controls code to allow updating this to the latest sdk.
defaultConfig {
minSdk = 26
}

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

@@ -1,9 +1,6 @@
package app.revanced.extension.youtube.patches;
import android.app.Activity;
import android.os.Build;
import androidx.annotation.RequiresApi;
import java.lang.ref.WeakReference;
import java.util.Objects;
@@ -58,7 +55,6 @@ public class ShortsAutoplayPatch {
/**
* @return If the app is currently in background PiP mode.
*/
@RequiresApi(api = Build.VERSION_CODES.N)
private static boolean isAppInBackgroundPiPMode() {
Activity activity = mainActivityRef.get();
return activity != null && activity.isInPictureInPictureMode();
@@ -80,7 +76,6 @@ public class ShortsAutoplayPatch {
/**
* Injection point.
*/
@RequiresApi(api = Build.VERSION_CODES.N)
public static Enum<?> changeShortsRepeatBehavior(Enum<?> original) {
try {
final boolean autoplay;

View File

@@ -7,13 +7,10 @@ import static app.revanced.extension.youtube.patches.announcements.requests.Anno
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Build;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.widget.TextView;
import androidx.annotation.RequiresApi;
import org.json.JSONArray;
import java.io.IOException;
@@ -31,7 +28,6 @@ public final class AnnouncementsPatch {
private AnnouncementsPatch() {
}
@RequiresApi(api = Build.VERSION_CODES.O)
private static boolean isLatestAlready() throws IOException {
HttpURLConnection connection =
AnnouncementsRoutes.getAnnouncementsConnectionFromRoute(GET_LATEST_ANNOUNCEMENT_IDS);
@@ -70,7 +66,6 @@ public final class AnnouncementsPatch {
return Settings.ANNOUNCEMENT_LAST_ID.get() == id;
}
@RequiresApi(api = Build.VERSION_CODES.O)
public static void showAnnouncement(final Activity context) {
if (!Settings.ANNOUNCEMENTS.get()) return;

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

@@ -1,9 +1,6 @@
package app.revanced.extension.youtube.patches.components;
import android.os.Build;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import java.util.*;
import java.util.function.Consumer;
@@ -44,13 +41,11 @@ abstract class FilterGroupList<V, T extends FilterGroup<V>> implements Iterable<
return filterGroups.iterator();
}
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void forEach(@NonNull Consumer<? super T> action) {
filterGroups.forEach(action);
}
@RequiresApi(api = Build.VERSION_CODES.N)
@NonNull
@Override
public Spliterator<T> spliterator() {

View File

@@ -4,11 +4,8 @@ import static app.revanced.extension.shared.StringRef.str;
import static app.revanced.extension.youtube.shared.NavigationBar.NavigationButton;
import static java.lang.Character.UnicodeBlock.*;
import android.os.Build;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import java.nio.charset.StandardCharsets;
import java.util.LinkedHashMap;
@@ -44,7 +41,6 @@ import app.revanced.extension.youtube.shared.PlayerType;
* - When using whole word syntax, some keywords may need additional pluralized variations.
*/
@SuppressWarnings("unused")
@RequiresApi(api = Build.VERSION_CODES.N)
final class KeywordContentFilter extends Filter {
/**

View File

@@ -3,11 +3,9 @@ package app.revanced.extension.youtube.patches.components;
import static app.revanced.extension.youtube.shared.NavigationBar.NavigationButton;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.view.View;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
@@ -18,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"
@@ -38,16 +32,15 @@ public final class LayoutComponentsFilter extends Filter {
private final StringTrieSearch exceptions = new StringTrieSearch();
private final StringFilterGroup inFeedSurvey;
private final StringFilterGroup notifyMe;
private final StringFilterGroup singleItemInformationPanel;
private final StringFilterGroup expandableMetadata;
private final ByteArrayFilterGroup searchResultRecommendations;
private final StringFilterGroup searchResultVideo;
private final StringFilterGroup compactChannelBarInner;
private final StringFilterGroup compactChannelBarInnerButton;
private final ByteArrayFilterGroup joinMembershipButton;
private final StringFilterGroup likeSubscribeGlow;
private final StringFilterGroup horizontalShelves;
@RequiresApi(api = Build.VERSION_CODES.N)
public LayoutComponentsFilter() {
exceptions.addPatterns(
"home_video_with_context",
@@ -105,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",
@@ -123,8 +121,12 @@ public final class LayoutComponentsFilter extends Filter {
);
final var infoPanel = new StringFilterGroup(
Settings.HIDE_HIDE_INFO_PANELS,
"publisher_transparency_panel",
Settings.HIDE_INFO_PANELS,
"publisher_transparency_panel"
);
singleItemInformationPanel = new StringFilterGroup(
Settings.HIDE_INFO_PANELS,
"single_item_information_panel"
);
@@ -217,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,
@@ -254,7 +252,6 @@ public final class LayoutComponentsFilter extends Filter {
expandableMetadata,
inFeedSurvey,
notifyMe,
likeSubscribeGlow,
compactChannelBar,
communityPosts,
paidPromotion,
@@ -269,8 +266,10 @@ public final class LayoutComponentsFilter extends Filter {
compactChannelBarInner,
medicalPanel,
infoPanel,
singleItemInformationPanel,
emergencyBox,
subscribersCommunityGuidelines,
subscriptionsChipBar,
channelGuidelines,
audioTrackButton,
artistCard,
@@ -285,6 +284,19 @@ public final class LayoutComponentsFilter extends Filter {
@Override
boolean isFiltered(@Nullable String identifier, String path, byte[] protobufBufferArray,
StringFilterGroup matchedGroup, FilterContentType contentType, int contentIndex) {
// This identifier is used not only in players but also in search results:
// https://github.com/ReVanced/revanced-patches/issues/3245
// Until 2024, medical information panels such as Covid 19 also used this identifier and were shown in the search results.
// From 2025, the medical information panel is no longer shown in the search results.
// Therefore, this identifier does not filter when the search bar is activated.
if (matchedGroup == singleItemInformationPanel) {
if (PlayerType.getCurrent().isMaximizedOrFullscreen() || !NavigationBar.isSearchBarActive()) {
return super.isFiltered(identifier, path, protobufBufferArray, matchedGroup, contentType, contentIndex);
}
return false;
}
if (matchedGroup == searchResultVideo) {
if (searchResultRecommendations.check(protobufBufferArray).isFiltered()) {
return super.isFiltered(identifier, path, protobufBufferArray, matchedGroup, contentType, contentIndex);
@@ -292,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

@@ -1,9 +1,6 @@
package app.revanced.extension.youtube.patches.components;
import android.os.Build;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import app.revanced.extension.youtube.settings.Settings;
import app.revanced.extension.youtube.shared.PlayerType;
@@ -16,7 +13,6 @@ public class PlayerFlyoutMenuItemsFilter extends Filter {
private final ByteArrayFilterGroup exception;
private final StringFilterGroup videoQualityMenuFooter;
@RequiresApi(api = Build.VERSION_CODES.N)
public PlayerFlyoutMenuItemsFilter() {
exception = new ByteArrayFilterGroup(
// Whitelist Quality menu item when "Hide Additional settings menu" is enabled

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

@@ -5,15 +5,12 @@ import static app.revanced.extension.shared.Utils.getResourceIdentifier;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.os.Build;
import android.preference.PreferenceFragment;
import android.util.TypedValue;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toolbar;
import androidx.annotation.RequiresApi;
import java.util.Objects;
import app.revanced.extension.shared.Logger;
@@ -22,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;
@@ -66,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.
@@ -79,7 +81,6 @@ public class LicenseActivityHook {
* <p>
* Hooks LicenseActivity#onCreate in order to inject our own fragment.
*/
@RequiresApi(api = Build.VERSION_CODES.N)
public static void initialize(Activity licenseActivity) {
try {
ThemeHelper.setActivityTheme(licenseActivity);
@@ -119,15 +120,13 @@ public class LicenseActivityHook {
}
}
@RequiresApi(api = Build.VERSION_CODES.N)
@SuppressLint("UseCompatLoadingForDrawables")
private static void createToolbar(Activity activity, String toolbarTitleResourceName) {
// Replace dummy placeholder toolbar.
// 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,8 +134,9 @@ 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_HIDE_INFO_PANELS = new BooleanSetting("revanced_hide_info_panels", 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);
public static final BooleanSetting HIDE_JOIN_MEMBERSHIP_BUTTON = new BooleanSetting("revanced_hide_join_membership_button", TRUE);
public static final BooleanSetting HIDE_MEDICAL_PANELS = new BooleanSetting("revanced_hide_medical_panels", TRUE);
@@ -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));
@@ -306,20 +307,19 @@ public class Settings extends BaseSettings {
// Swipe controls
public static final BooleanSetting SWIPE_CHANGE_VIDEO = new BooleanSetting("revanced_swipe_change_video", FALSE, true);
public static final BooleanSetting SWIPE_BRIGHTNESS = new BooleanSetting("revanced_swipe_brightness", FALSE);
public static final BooleanSetting SWIPE_VOLUME = new BooleanSetting("revanced_swipe_volume", FALSE);
public static final BooleanSetting SWIPE_BRIGHTNESS = new BooleanSetting("revanced_swipe_brightness", FALSE, true);
public static final BooleanSetting SWIPE_VOLUME = new BooleanSetting("revanced_swipe_volume", FALSE, true);
public static final BooleanSetting SWIPE_PRESS_TO_ENGAGE = new BooleanSetting("revanced_swipe_press_to_engage", FALSE, true,
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
public static final BooleanSetting SWIPE_HAPTIC_FEEDBACK = new BooleanSetting("revanced_swipe_haptic_feedback", TRUE, true,
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
public static final IntegerSetting SWIPE_MAGNITUDE_THRESHOLD = new IntegerSetting("revanced_swipe_threshold", 30, true,
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
public static final IntegerSetting SWIPE_OVERLAY_OPACITY = new IntegerSetting("revanced_swipe_overlay_background_opacity", 50, true,
public static final BooleanSetting SWIPE_SHOW_CIRCULAR_OVERLAY = new BooleanSetting("revanced_swipe_show_circular_overlay", FALSE, true,
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
private static final IntegerSetting DEPRECATED_SWIPE_OVERLAY_BACKGROUND_ALPHA = new IntegerSetting("revanced_swipe_overlay_background_alpha", 127);
// Debugging
public static final IntegerSetting SWIPE_OVERLAY_TEXT_SIZE = new IntegerSetting("revanced_swipe_text_overlay_size", 22, true,
public static final BooleanSetting SWIPE_OVERLAY_MINIMAL_STYLE = new BooleanSetting("revanced_swipe_overlay_minimal_style", FALSE, true,
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));
public static final LongSetting SWIPE_OVERLAY_TIMEOUT = new LongSetting("revanced_swipe_overlay_timeout", 500L, true,
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
@@ -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,18 +3,14 @@ package app.revanced.extension.youtube.settings.preference;
import static android.text.Html.FROM_HTML_MODE_COMPACT;
import android.content.Context;
import android.os.Build;
import android.preference.Preference;
import android.text.Html;
import android.util.AttributeSet;
import androidx.annotation.RequiresApi;
/**
* Allows using basic html for the summary text.
*/
@SuppressWarnings({"unused", "deprecation"})
@RequiresApi(api = Build.VERSION_CODES.O)
public class HtmlPreference extends Preference {
{
setSummary(Html.fromHtml(getSummary().toString(), FROM_HTML_MODE_COMPACT));

View File

@@ -17,8 +17,6 @@ import android.view.WindowInsets;
import android.widget.TextView;
import android.widget.Toolbar;
import androidx.annotation.RequiresApi;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -98,7 +96,6 @@ public class ReVancedPreferenceFragment extends AbstractPreferenceFragment {
listPreference.setEntryValues(sortedEntryValues);
}
@RequiresApi(api = Build.VERSION_CODES.O)
@Override
protected void initialize() {
super.initialize();

View File

@@ -3,11 +3,11 @@ package app.revanced.extension.youtube.shared;
import static app.revanced.extension.youtube.shared.NavigationBar.NavigationButton.CREATE;
import android.app.Activity;
import android.os.Build;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.widget.FrameLayout;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import java.lang.ref.WeakReference;
import java.util.Arrays;
@@ -26,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.
*/
@@ -39,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).
@@ -49,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.
//
/**
@@ -257,7 +288,6 @@ public final class NavigationBar {
* Injection point.
* Fixes missing drawable.
*/
@RequiresApi(api = Build.VERSION_CODES.N)
@SuppressWarnings({"unchecked", "rawtypes"})
public static void setCairoNotificationFilledIcon(EnumMap enumMap, Enum tabActivityCairo) {
if (fillBellCairoBlack != 0) {

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

@@ -20,19 +20,17 @@ class SwipeControlsConfigurationProvider(
* should swipe controls be enabled? (global setting)
*/
val enableSwipeControls: Boolean
get() = isFullscreenVideo && (enableVolumeControls || enableBrightnessControl)
get() = (enableVolumeControls || enableBrightnessControl) && isFullscreenVideo
/**
* should swipe controls for volume be enabled?
*/
val enableVolumeControls: Boolean
get() = Settings.SWIPE_VOLUME.get()
val enableVolumeControls = Settings.SWIPE_VOLUME.get()
/**
* should swipe controls for volume be enabled?
*/
val enableBrightnessControl: Boolean
get() = Settings.SWIPE_BRIGHTNESS.get()
val enableBrightnessControl = Settings.SWIPE_BRIGHTNESS.get()
/**
* is the video player currently in fullscreen mode?
@@ -46,7 +44,7 @@ class SwipeControlsConfigurationProvider(
* should volume key controls be overwritten? (global setting)
*/
val overwriteVolumeKeyControls: Boolean
get() = isFullscreenVideo && enableVolumeControls
get() = enableVolumeControls && isFullscreenVideo
//endregion
//region gesture adjustments
@@ -65,7 +63,6 @@ class SwipeControlsConfigurationProvider(
//endregion
//region overlay adjustments
/**
* should the overlay enable haptic feedback?
*/
@@ -79,15 +76,10 @@ class SwipeControlsConfigurationProvider(
get() = Settings.SWIPE_OVERLAY_TIMEOUT.get()
/**
* text size for the overlay, in sp
* Gets the opacity value (0-100%) is converted to an alpha value (0-255) for transparency.
* If the opacity value is out of range, it resets to the default and displays a warning message.
*/
val overlayTextSize: Int
get() = Settings.SWIPE_OVERLAY_TEXT_SIZE.get()
/**
* get the background color for text on the overlay, as a color int
*/
val overlayTextBackgroundColor: Int
val overlayBackgroundOpacity: Int
get() {
var opacity = Settings.SWIPE_OVERLAY_OPACITY.get()
@@ -102,11 +94,34 @@ class SwipeControlsConfigurationProvider(
}
/**
* get the foreground color for text on the overlay, as a color int
* The color of the progress overlay.
*/
val overlayForegroundColor: Int
val overlayProgressColor: Int
get() = 0xBFFFFFFF.toInt()
/**
* The color used for the background of the progress overlay fill.
*/
val overlayFillBackgroundPaint: Int
get() = 0x80D3D3D3.toInt()
/**
* The color used for the text and icons in the overlay.
*/
val overlayTextColor: Int
get() = Color.WHITE
/**
* A flag that determines if the overlay should only show the icon.
*/
val overlayShowOverlayMinimalStyle: Boolean
get() = Settings.SWIPE_OVERLAY_MINIMAL_STYLE.get()
/**
* A flag that determines if the progress bar should be circular.
*/
val isCircularProgressBar: Boolean
get() = Settings.SWIPE_SHOW_CIRCULAR_OVERLAY.get()
//endregion
//region behaviour

View File

@@ -82,11 +82,15 @@ abstract class BaseGestureController(
}
override fun onScroll(
from: MotionEvent,
from: MotionEvent?,
to: MotionEvent,
distanceX: Float,
distanceY: Float,
): Boolean {
if (from == null) {
return false
}
// submit to swipe detector
submitForSwipe(from, to, distanceX, distanceY)

View File

@@ -1,138 +1,145 @@
package app.revanced.extension.youtube.swipecontrols.views
import android.content.Context
import android.graphics.Canvas
import android.graphics.Paint
import android.graphics.RectF
import android.graphics.drawable.Drawable
import android.graphics.drawable.GradientDrawable
import android.os.Handler
import android.os.Looper
import android.util.TypedValue
import android.util.AttributeSet
import android.view.HapticFeedbackConstants
import android.view.View
import android.view.ViewGroup
import android.widget.RelativeLayout
import android.widget.TextView
import app.revanced.extension.shared.StringRef.str
import app.revanced.extension.shared.Utils
import app.revanced.extension.youtube.swipecontrols.SwipeControlsConfigurationProvider
import app.revanced.extension.youtube.swipecontrols.misc.SwipeControlsOverlay
import app.revanced.extension.youtube.swipecontrols.misc.applyDimension
import kotlin.math.min
import kotlin.math.round
/**
* main overlay layout for volume and brightness swipe controls
*
* @param context context to create in
* Main overlay layout for displaying volume and brightness level with both circular and horizontal progress bars.
*/
class SwipeControlsOverlayLayout(
context: Context,
private val config: SwipeControlsConfigurationProvider,
) : RelativeLayout(context), SwipeControlsOverlay {
/**
* DO NOT use this, for tools only
*/
constructor(context: Context) : this(context, SwipeControlsConfigurationProvider(context))
private val feedbackTextView: TextView
private val autoBrightnessIcon: Drawable
private val manualBrightnessIcon: Drawable
private val mutedVolumeIcon: Drawable
private val normalVolumeIcon: Drawable
// Drawable icons for brightness and volume
private val autoBrightnessIcon: Drawable = getDrawable("revanced_ic_sc_brightness_auto")
private val lowBrightnessIcon: Drawable = getDrawable("revanced_ic_sc_brightness_low")
private val mediumBrightnessIcon: Drawable = getDrawable("revanced_ic_sc_brightness_medium")
private val highBrightnessIcon: Drawable = getDrawable("revanced_ic_sc_brightness_high")
private val fullBrightnessIcon: Drawable = getDrawable("revanced_ic_sc_brightness_full")
private val mutedVolumeIcon: Drawable = getDrawable("revanced_ic_sc_volume_mute")
private val lowVolumeIcon: Drawable = getDrawable("revanced_ic_sc_volume_low")
private val normalVolumeIcon: Drawable = getDrawable("revanced_ic_sc_volume_normal")
private val fullVolumeIcon: Drawable = getDrawable("revanced_ic_sc_volume_high")
private fun getDrawable(name: String, width: Int, height: Int): Drawable {
return resources.getDrawable(
// Function to retrieve drawable resources by name
private fun getDrawable(name: String): Drawable {
val drawable = resources.getDrawable(
Utils.getResourceIdentifier(context, name, "drawable"),
context.theme,
).apply {
setTint(config.overlayForegroundColor)
setBounds(
0,
0,
width,
height,
)
}
)
drawable.setTint(config.overlayTextColor)
return drawable
}
// Initialize progress bars
private val circularProgressView: CircularProgressView
private val horizontalProgressView: HorizontalProgressView
init {
// init views
val feedbackTextViewPadding = 2.applyDimension(context, TypedValue.COMPLEX_UNIT_DIP)
val compoundIconPadding = 4.applyDimension(context, TypedValue.COMPLEX_UNIT_DIP)
feedbackTextView = TextView(context).apply {
layoutParams = LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT,
).apply {
// Initialize circular progress bar
circularProgressView = CircularProgressView(
context,
config.overlayBackgroundOpacity,
config.overlayShowOverlayMinimalStyle,
config.overlayProgressColor,
config.overlayFillBackgroundPaint,
config.overlayTextColor
).apply {
layoutParams = LayoutParams(300, 300).apply {
addRule(CENTER_IN_PARENT, TRUE)
setPadding(
feedbackTextViewPadding,
feedbackTextViewPadding,
feedbackTextViewPadding,
feedbackTextViewPadding,
)
}
background = GradientDrawable().apply {
cornerRadius = 8f
setColor(config.overlayTextBackgroundColor)
}
setTextColor(config.overlayForegroundColor)
setTextSize(TypedValue.COMPLEX_UNIT_SP, config.overlayTextSize.toFloat())
compoundDrawablePadding = compoundIconPadding
visibility = GONE
visibility = GONE // Initially hidden
}
addView(feedbackTextView)
addView(circularProgressView)
// get icons scaled, assuming square icons
val iconHeight = round(feedbackTextView.lineHeight * .8).toInt()
autoBrightnessIcon = getDrawable("revanced_ic_sc_brightness_auto", iconHeight, iconHeight)
manualBrightnessIcon = getDrawable("revanced_ic_sc_brightness_manual", iconHeight, iconHeight)
mutedVolumeIcon = getDrawable("revanced_ic_sc_volume_mute", iconHeight, iconHeight)
normalVolumeIcon = getDrawable("revanced_ic_sc_volume_normal", iconHeight, iconHeight)
// Initialize horizontal progress bar
val screenWidth = resources.displayMetrics.widthPixels
val layoutWidth = (screenWidth * 2 / 3).toInt() // 2/3 of screen width
horizontalProgressView = HorizontalProgressView(
context,
config.overlayBackgroundOpacity,
config.overlayShowOverlayMinimalStyle,
config.overlayProgressColor,
config.overlayFillBackgroundPaint,
config.overlayTextColor
).apply {
layoutParams = LayoutParams(layoutWidth, 100).apply {
addRule(CENTER_HORIZONTAL)
topMargin = 40 // Top margin
}
visibility = GONE // Initially hidden
}
addView(horizontalProgressView)
}
// Handler and callback for hiding progress bars
private val feedbackHideHandler = Handler(Looper.getMainLooper())
private val feedbackHideCallback = Runnable {
feedbackTextView.visibility = GONE
circularProgressView.visibility = GONE
horizontalProgressView.visibility = GONE
}
/**
* show the feedback view for a given time
*
* @param message the message to show
* @param icon the icon to use
* Displays the progress bar with the appropriate value, icon, and type (brightness or volume).
*/
private fun showFeedbackView(message: String, icon: Drawable) {
private fun showFeedbackView(value: String, progress: Int, max: Int, icon: Drawable, isBrightness: Boolean) {
feedbackHideHandler.removeCallbacks(feedbackHideCallback)
feedbackHideHandler.postDelayed(feedbackHideCallback, config.overlayShowTimeoutMillis)
feedbackTextView.apply {
text = message
setCompoundDrawablesRelative(
icon,
null,
null,
null,
)
val viewToShow = if (config.isCircularProgressBar) circularProgressView else horizontalProgressView
viewToShow.apply {
setProgress(progress, max, value, isBrightness)
this.icon = icon
visibility = VISIBLE
}
}
// Handle volume change
override fun onVolumeChanged(newVolume: Int, maximumVolume: Int) {
showFeedbackView(
"$newVolume",
if (newVolume > 0) normalVolumeIcon else mutedVolumeIcon,
)
val volumePercentage = (newVolume.toFloat() / maximumVolume) * 100
val icon = when {
newVolume == 0 -> mutedVolumeIcon
volumePercentage < 33 -> lowVolumeIcon
volumePercentage < 66 -> normalVolumeIcon
else -> fullVolumeIcon
}
showFeedbackView("$newVolume", newVolume, maximumVolume, icon, isBrightness = false)
}
// Handle brightness change
override fun onBrightnessChanged(brightness: Double) {
if (config.shouldLowestValueEnableAutoBrightness && brightness <= 0) {
showFeedbackView(
str("revanced_swipe_lowest_value_enable_auto_brightness_overlay_text"),
autoBrightnessIcon,
)
} else if (brightness >= 0) {
showFeedbackView("${round(brightness).toInt()}%", manualBrightnessIcon)
showFeedbackView("Auto", 0, 100, autoBrightnessIcon, isBrightness = true)
} else {
val brightnessValue = round(brightness).toInt()
val icon = when {
brightnessValue < 25 -> lowBrightnessIcon
brightnessValue < 50 -> mediumBrightnessIcon
brightnessValue < 75 -> highBrightnessIcon
else -> fullBrightnessIcon
}
showFeedbackView("$brightnessValue%", brightnessValue, 100, icon, isBrightness = true)
}
}
// Begin swipe session
override fun onEnterSwipeSession() {
if (config.shouldEnableHapticFeedback) {
@Suppress("DEPRECATION")
@@ -143,3 +150,229 @@ class SwipeControlsOverlayLayout(
}
}
}
/**
* Abstract base class for progress views.
*/
abstract class AbstractProgressView(
context: Context,
protected val overlayBackgroundOpacity: Int,
protected val overlayShowOverlayMinimalStyle: Boolean,
protected val overlayProgressColor: Int,
protected val overlayFillBackgroundPaint: Int,
protected val overlayTextColor: Int,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : View(context, attrs, defStyleAttr) {
// Combined paint creation function for both fill and stroke styles
private fun createPaint(color: Int, style: Paint.Style = Paint.Style.FILL, strokeCap: Paint.Cap = Paint.Cap.BUTT, strokeWidth: Float = 0f) = Paint(Paint.ANTI_ALIAS_FLAG).apply {
this.style = style
this.color = color
this.strokeCap = strokeCap
this.strokeWidth = strokeWidth
}
// Initialize paints
public val backgroundPaint = createPaint(overlayBackgroundOpacity, style = Paint.Style.FILL)
public val progressPaint = createPaint(overlayProgressColor, style = Paint.Style.STROKE, strokeCap = Paint.Cap.ROUND, strokeWidth = 20f)
public val fillBackgroundPaint = createPaint(overlayFillBackgroundPaint, style = Paint.Style.FILL)
public val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
color = overlayTextColor
textAlign = Paint.Align.CENTER
textSize = 40f // Can adjust based on need
}
protected var progress = 0
protected var maxProgress = 100
protected var displayText: String = "0"
protected var isBrightness = true
public var icon: Drawable? = null
init {
// Stroke widths are now set in createPaint for progressPaint and fillBackgroundPaint
}
fun setProgress(value: Int, max: Int, text: String, isBrightnessMode: Boolean) {
progress = value
maxProgress = max
displayText = text
isBrightness = isBrightnessMode
invalidate()
}
override fun onDraw(canvas: Canvas) {
// Base class implementation can be empty
}
}
/**
* Custom view for rendering a circular progress indicator with icons and text.
*/
class CircularProgressView(
context: Context,
overlayBackgroundOpacity: Int,
overlayShowOverlayMinimalStyle: Boolean,
overlayProgressColor: Int,
overlayFillBackgroundPaint: Int,
overlayTextColor: Int,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : AbstractProgressView(
context,
overlayBackgroundOpacity,
overlayShowOverlayMinimalStyle,
overlayProgressColor,
overlayFillBackgroundPaint,
overlayTextColor,
attrs,
defStyleAttr
) {
private val rectF = RectF()
init {
textPaint.textSize = 40f // Override default text size for circular view
progressPaint.strokeWidth = 20f
fillBackgroundPaint.strokeWidth = 20f
progressPaint.strokeCap = Paint.Cap.ROUND
fillBackgroundPaint.strokeCap = Paint.Cap.BUTT
progressPaint.style = Paint.Style.STROKE
fillBackgroundPaint.style = Paint.Style.STROKE
}
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
val size = min(width, height).toFloat()
rectF.set(20f, 20f, size - 20f, size - 20f)
canvas.drawOval(rectF, fillBackgroundPaint) // Draw the outer ring.
canvas.drawCircle(width / 2f, height / 2f, size / 3, backgroundPaint) // Draw the inner circle.
// Select the paint for drawing based on whether it's brightness or volume.
val sweepAngle = (progress.toFloat() / maxProgress) * 360
canvas.drawArc(rectF, -90f, sweepAngle, false, progressPaint) // Draw the progress arc.
// Draw the icon in the center.
icon?.let {
val iconSize = if (overlayShowOverlayMinimalStyle) 100 else 80
val iconX = (width - iconSize) / 2
val iconY = (height / 2) - if (overlayShowOverlayMinimalStyle) 50 else 80
it.setBounds(iconX, iconY, iconX + iconSize, iconY + iconSize)
it.draw(canvas)
}
// If not a minimal style mode, draw the text inside the ring.
if (!overlayShowOverlayMinimalStyle) {
canvas.drawText(displayText, width / 2f, height / 2f + 60f, textPaint)
}
}
}
/**
* Custom view for rendering a rectangular progress bar with icons and text.
*/
class HorizontalProgressView(
context: Context,
overlayBackgroundOpacity: Int,
overlayShowOverlayMinimalStyle: Boolean,
overlayProgressColor: Int,
overlayFillBackgroundPaint: Int,
overlayTextColor: Int,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : AbstractProgressView(
context,
overlayBackgroundOpacity,
overlayShowOverlayMinimalStyle,
overlayProgressColor,
overlayFillBackgroundPaint,
overlayTextColor,
attrs,
defStyleAttr
) {
private val iconSize = 60f
private val padding = 40f
init {
textPaint.textSize = 36f // Override default text size for horizontal view
progressPaint.strokeWidth = 0f
progressPaint.strokeCap = Paint.Cap.BUTT
progressPaint.style = Paint.Style.FILL
fillBackgroundPaint.style = Paint.Style.FILL
}
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
val width = width.toFloat()
val height = height.toFloat()
// Radius for rounded corners
val cornerRadius = min(width, height) / 2
// Calculate the total width for the elements
val minimalElementWidth = 5 * padding + iconSize
// Calculate the starting point (X) to center the elements
val minimalStartX = (width - minimalElementWidth) / 2
// Draw the background
if (!overlayShowOverlayMinimalStyle) {
canvas.drawRoundRect(0f, 0f, width, height, cornerRadius, cornerRadius, backgroundPaint)
} else {
canvas.drawRoundRect(minimalStartX, 0f, minimalStartX + minimalElementWidth, height, cornerRadius, cornerRadius, backgroundPaint)
}
if (!overlayShowOverlayMinimalStyle) {
// Draw the fill background
val startX = 2 * padding + iconSize
val endX = width - 4 * padding
val fillWidth = endX - startX
canvas.drawRoundRect(
startX,
height / 2 - 5f,
endX,
height / 2 + 5f,
10f, 10f,
fillBackgroundPaint
)
// Draw the progress
val progressWidth = (progress.toFloat() / maxProgress) * fillWidth
canvas.drawRoundRect(
startX,
height / 2 - 5f,
startX + progressWidth,
height / 2 + 5f,
10f, 10f,
progressPaint
)
}
// Draw the icon
icon?.let {
val iconX = if (!overlayShowOverlayMinimalStyle) {
padding
} else {
padding + minimalStartX
}
val iconY = height / 2 - iconSize / 2
it.setBounds(iconX.toInt(), iconY.toInt(), (iconX + iconSize).toInt(), (iconY + iconSize).toInt())
it.draw(canvas)
}
// Draw the text on the right
val textX = if (!overlayShowOverlayMinimalStyle) {
width - 2 * padding
} else {
minimalStartX + minimalElementWidth - 2 * padding
}
val textY = height / 2 + textPaint.textSize / 3
// Draw the text
canvas.drawText(displayText, textX, textY, textPaint)
}
}

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.12.0
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

@@ -42,9 +42,10 @@ private val swipeControlsResourcePatch = resourcePatch {
SwitchPreference("revanced_swipe_haptic_feedback"),
SwitchPreference("revanced_swipe_save_and_restore_brightness"),
SwitchPreference("revanced_swipe_lowest_value_enable_auto_brightness"),
TextPreference("revanced_swipe_overlay_timeout", inputType = InputType.NUMBER),
TextPreference("revanced_swipe_text_overlay_size", inputType = InputType.NUMBER),
SwitchPreference("revanced_swipe_show_circular_overlay"),
SwitchPreference("revanced_swipe_overlay_minimal_style"),
TextPreference("revanced_swipe_overlay_background_opacity", inputType = InputType.NUMBER),
TextPreference("revanced_swipe_overlay_timeout", inputType = InputType.NUMBER),
TextPreference("revanced_swipe_threshold", inputType = InputType.NUMBER),
)
@@ -53,7 +54,12 @@ private val swipeControlsResourcePatch = resourcePatch {
ResourceGroup(
"drawable",
"revanced_ic_sc_brightness_auto.xml",
"revanced_ic_sc_brightness_manual.xml",
"revanced_ic_sc_brightness_full.xml",
"revanced_ic_sc_brightness_high.xml",
"revanced_ic_sc_brightness_low.xml",
"revanced_ic_sc_brightness_medium.xml",
"revanced_ic_sc_volume_high.xml",
"revanced_ic_sc_volume_low.xml",
"revanced_ic_sc_volume_mute.xml",
"revanced_ic_sc_volume_normal.xml",
),

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

@@ -45,7 +45,7 @@ Second \"item\" text"</string>
<!-- 'For you' should be translated using the same localized wording YouTube displays. -->
<!-- '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. -->
<!-- 'People also watch' should be translated using the same localized wording YouTube displays. -->
<!-- 'People also watched' should be translated using the same localized wording YouTube displays. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
@@ -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

@@ -45,7 +45,7 @@ Second \"item\" text"</string>
<!-- 'For you' should be translated using the same localized wording YouTube displays. -->
<!-- '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. -->
<!-- 'People also watch' should be translated using the same localized wording YouTube displays. -->
<!-- 'People also watched' should be translated using the same localized wording YouTube displays. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
@@ -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>
@@ -193,22 +190,22 @@ Second \"item\" text"</string>
<string name="revanced_hide_horizontal_shelves_summary_off">؊ØĒŲ… ØšØąØļ Ø§Ų„ØąŲŲˆŲ</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">ØĨØŽŲØ§ØĄ Ø˛Øą \'Ø§Ų„Ø§Ų†ØļŲ…Ø§Ų…\'</string>
<string name="revanced_hide_join_membership_button_title">ØĨØŽŲØ§ØĄ Ø˛Øą Ø§Ų„Ø§Ų†ØļŲ…Ø§Ų…</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>
<string name="revanced_hide_notify_me_button_summary_on">ØĒŲ… ØĨØŽŲØ§ØĄ Ø§Ų„Ø˛Øą</string>
<string name="revanced_hide_notify_me_button_summary_off">؊ØĒŲ… ØšØąØļ Ø§Ų„Ø˛Øą</string>
<!-- 'People also watch' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_search_result_recommendations_title">ØĨØŽŲØ§ØĄ ØĒ؈ØĩŲŠØ§ØĒ \'Ø´Ø§Ų‡Ø¯ Ø§Ų„ØŖØ´ØŽØ§Øĩ ØŖŲŠØļŲ‹Ø§\'</string>
<string name="revanced_hide_search_result_recommendations_summary_on">ØĒŲ… ØĨØŽŲØ§ØĄ Ø§Ų„ØĒ؈ØĩŲŠØ§ØĒ</string>
<string name="revanced_hide_search_result_recommendations_summary_off">؊ØĒŲ… ØšØąØļ Ø§Ų„ØĒ؈ØĩŲŠØ§ØĒ</string>
<!-- 'People also watched' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_search_result_recommendations_title">ØĨØŽŲØ§ØĄ ØšŲ„Ø§Ų…ØŠ \'Ø§Ų„ØŖØ´ØŽØ§Øĩ Ø§Ų„Ø°ŲŠŲ† Ø´Ø§Ų‡Ø¯ŲˆØ§ ØŖŲŠØļŲ‹Ø§\'</string>
<string name="revanced_hide_search_result_recommendations_summary_on">ØĒŲ… ØĨØŽŲØ§ØĄ Ø§Ų„ØšŲ„Ø§Ų…ØŠ</string>
<string name="revanced_hide_search_result_recommendations_summary_off">؊ØĒŲ… ØšØąØļ Ø§Ų„ØšŲ„Ø§Ų…ØŠ</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">ØĨØŽŲØ§ØĄ Ø˛Øą \'ØšØąØļ Ø§Ų„Ų…Ø˛ŲŠØ¯\'</string>
@@ -224,8 +221,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>
@@ -241,7 +238,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_community_guidelines_title">ØĨØŽŲØ§ØĄ ØĨØąØ´Ø§Ø¯Ø§ØĒ Ø§Ų„Ų…ØŦØĒŲ…Øš</string>
<string name="revanced_hide_community_guidelines_summary_on">ØĒŲ… ØĨØŽŲØ§ØĄ ØĨØąØ´Ø§Ø¯Ø§ØĒ Ø§Ų„Ų…ØŦØĒŲ…Øš</string>
<string name="revanced_hide_community_guidelines_summary_off">؊ØĒŲ… ØšØąØļ ØĨØąØ´Ø§Ø¯Ø§ØĒ Ø§Ų„Ų…ØŦØĒŲ…Øš</string>
<string name="revanced_hide_subscribers_community_guidelines_title">ØĨØŽŲØ§ØĄ ØĨØąØ´Ø§Ø¯Ø§ØĒ Ų…ØŦØĒŲ…Øš Ø§Ų„Ų…Ø´ØĒØąŲƒŲŠŲ†</string>
<string name="revanced_hide_subscribers_community_guidelines_title">ØĨØŽŲØ§ØĄ ØĨØąØ´Ø§Ø¯Ø§ØĒ Ø§Ų„Ų…Ø´ØĒØąŲƒŲŠŲ†</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_on">ØĒŲ… ØĨØŽŲØ§ØĄ ØĨØąØ´Ø§Ø¯Ø§ØĒ Ų…ØŦØĒŲ…Øš Ø§Ų„Ų…Ø´ØĒØąŲƒŲŠŲ†</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_off">؊ØĒŲ… ØšØąØļ ØĨØąØ´Ø§Ø¯Ø§ØĒ Ų…ØŦØĒŲ…Øš Ø§Ų„Ų…Ø´ØĒØąŲƒŲŠŲ†</string>
<string name="revanced_hide_channel_member_shelf_title">ØĨØŽŲØ§ØĄ ØąŲ ØŖØšØļØ§ØĄ Ø§Ų„Ų‚Ų†Ø§ØŠ</string>
@@ -280,63 +277,63 @@ 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">ØĒŲ… ØĨØŽŲØ§ØĄ ØŖŲ‚ØŗØ§Ų… Ø§Ų„ØŖŲ…Ø§ŲƒŲ† Ø§Ų„Ų…Ų…ŲŠØ˛ØŠØŒ Ø§Ų„ØŖŲ„ØšØ§Ø¨ØŒ Ø§Ų„Ų…ŲˆØŗŲŠŲ‚Ų‰ ŲˆØ§Ų„ØŖØ´ØŽØ§Øĩ Ø§Ų„Ų…Ø°ŲƒŲˆØąŲˆŲ†</string>
<string name="revanced_hide_attributes_section_summary_off">؊ØĒŲ… ØšØąØļ ØŖŲ‚ØŗØ§Ų… Ø§Ų„ØŖŲ…Ø§ŲƒŲ† Ø§Ų„Ų…Ų…ŲŠØ˛ØŠØŒ Ø§Ų„ØŖŲ„ØšØ§Ø¨ØŒ Ø§Ų„Ų…ŲˆØŗŲŠŲ‚Ų‰ ŲˆØ§Ų„ØŖØ´ØŽØ§Øĩ Ø§Ų„Ų…Ø°ŲƒŲˆØąŲˆŲ†</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">ØĨØŽŲØ§ØĄ Ų‚ØŗŲ… \'Ø§ØŗØĒŲƒØ´Ø§Ų Ø§Ų„Ø¨ŲˆØ¯ŲƒØ§ØŗØĒ\'</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_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">ØĨØŽŲØ§ØĄ \'Ø§ØŗØĒŲƒØ´Ø§Ų Ø§Ų„Ø¨ŲˆØ¯ŲƒØ§ØŗØĒ\'</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>
<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>
<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_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_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_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">ØĨØŽŲØ§ØĄ ØŖØ˛ØąØ§Øą Ø§Ų„ØąŲ…ŲˆØ˛ Ø§Ų„ØĒØšØ¨ŲŠØąŲŠØŠ ŲˆØ§Ų„ØˇŲˆØ§Ø¨Øš Ø§Ų„Ø˛Ų…Ų†ŲŠØŠ</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>
<string name="revanced_hide_comments_thanks_button_title">ØĨØŽŲØ§ØĄ Ø˛Øą Ø´ŲƒØąŲ‹Ø§</string>
<string name="revanced_hide_comments_thanks_button_summary_on">ØĒŲ… ØĨØŽŲØ§ØĄ Ø˛Øą Ø´ŲƒØąŲ‹Ø§</string>
<string name="revanced_hide_comments_thanks_button_summary_off">؊ØĒŲ… ØšØąØļ Ø˛Øą Ø´ŲƒØąŲ‹Ø§</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">ØĨØŽŲØ§ØĄ ØŖØ˛ØąØ§Øą Ø§Ų„ØˇØ§Ø¨Øš Ø§Ų„Ø˛Ų…Ų†ŲŠ ŲˆØ§Ų„ØąŲ…ŲˆØ˛ Ø§Ų„ØĒØšØ¨ŲŠØąŲŠØŠ</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>
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<string name="revanced_hide_doodles_title">ØĨØŽŲØ§ØĄ ØąØŗŲˆŲ…Ø§ØĒ YouTube</string>
<string name="revanced_hide_doodles_summary_on">ØĒŲ… ØĨØŽŲØ§ØĄ ØąØŗŲˆŲ…Ø§ØĒ Ø´ØąŲŠØˇ Ø§Ų„Ø¨Ø­ØĢ</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>
@@ -417,12 +414,12 @@ Second \"item\" text"</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_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_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>
@@ -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>
@@ -831,7 +847,7 @@ Second \"item\" text"</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">Ų„Ų… ŲŠØšØŦØ¨Ų†ŲŠ ØēŲŠØą Ų…ØĒاح Ų…Ø¤Ų‚ØĒŲ‹Ø§ (Ø§Ų†ØĒŲ‡ØĒ Ų…Ų‡Ų„ØŠ API)</string>
<string name="revanced_ryd_failure_connection_status_code">Ų„Ų… ŲŠØšØŦØ¨Ų†ŲŠ ØēŲŠØą Ų…ØĒاح (Ø§Ų„Ø­Ø§Ų„ØŠ %d)</string>
<string name="revanced_ryd_failure_client_rate_limit_requested">Ų„Ų… ŲŠØšØŦØ¨Ų†ŲŠ ØēŲŠØą Ų…ØĒاح (ØĒŲ… Ø§Ų„ŲˆØĩŲˆŲ„ ØĨŲ„Ų‰ حد API Ø§Ų„ØšŲ…ŲŠŲ„)</string>
<string name="revanced_ryd_failure_client_rate_limit_requested">Ų…ØąØ§ØĒ ØšØ¯Ų… Ø§Ų„ØĨØšØŦاب ØēŲŠØą Ų…ØĒŲˆŲØąØŠ (حد ŲˆØ§ØŦŲ‡ØŠ Ø¨ØąŲ…ØŦØŠ ØĒØˇØ¨ŲŠŲ‚Ø§ØĒ Ø§Ų„ØšŲ…ŲŠŲ„)</string>
<string name="revanced_ryd_failure_generic">Ų„Ų… ŲŠØšØŦØ¨Ų†ŲŠ ØēŲŠØą Ų…ØĒاح (%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">ØŖØšØ¯ ØĒØ­Ų…ŲŠŲ„ Ø§Ų„ŲŲŠØ¯ŲŠŲˆ Ų„Ų„ØĒØĩ؈؊ØĒ Ø¨Ų€ Return YouTube Dislike</string>
@@ -840,14 +856,14 @@ Second \"item\" text"</string>
<string name="revanced_ryd_enable_summary_on">؊ØĒŲ… ØšØąØļ Ų„Ų… ŲŠØšØŦØ¨Ų†ŲŠ</string>
<string name="revanced_ryd_enable_summary_off">Ų„Ø§ ؊ØĒŲ… ØšØąØļ Ų„Ų… ŲŠØšØŦØ¨Ų†ŲŠ</string>
<string name="revanced_ryd_shorts_title">ØšØąØļ Ų„Ų… ŲŠØšØŦŲ†ŲŠ ؁؊ ŲŲŠØ¯ŲŠŲˆŲ‡Ø§ØĒ Shorts</string>
<string name="revanced_ryd_shorts_summary_on">؊ØĒŲ… ØšØąØļ Ų„Ų… ŲŠØšØŦŲ†ŲŠ ؁؊ ŲŲŠØ¯ŲŠŲˆŲ‡Ø§ØĒ Shorts</string>
<string name="revanced_ryd_shorts_summary_on_disclaimer">"ØĨØ¨Ø¯Ø§ØĄØ§ØĒ Ų„Ų… ŲŠØšØŦØ¨Ų†ŲŠ Ø§Ų„ØĒ؊ ØĒØ¸Ų‡Øą ØšŲ„Ų‰ ŲŲŠØ¯ŲŠŲˆŲ‡Ø§ØĒ Shorts
<string name="revanced_ryd_shorts_summary_on">؊ØĒŲ… ØšØąØļ ØšØ¯Ų… Ø§Ų„ØĨØšØŦاب ØšŲ„Ų‰ ŲŲŠØ¯ŲŠŲˆŲ‡Ø§ØĒ Shorts</string>
<string name="revanced_ryd_shorts_summary_on_disclaimer">"؊ØĒŲ… ØšØąØļ Ų…ØąØ§ØĒ ØšØ¯Ų… Ø§Ų„ØĨØšØŦاب ؁؊ ŲŲŠØ¯ŲŠŲˆŲ‡Ø§ØĒ Shorts
Ø§Ų„ØĒŲ‚ŲŠŲŠØ¯: Ų‚Ø¯ Ų„Ø§ ØĒØ¸Ų‡Øą ØĨØ¨Ø¯Ø§ØĄØ§ØĒ Ų„Ų… ŲŠØšØŦØ¨Ų†ŲŠ ؁؊ ؈ØļØš Ø§Ų„ØĒØĩŲØ­ Ø§Ų„Ų…ØĒØŽŲŲŠ"</string>
<string name="revanced_ryd_shorts_summary_off">ØĒŲ… ØĨØŽŲØ§ØĄ Ų„Ų… ŲŠØšØŦŲ†ŲŠ ؁؊ ŲŲŠØ¯ŲŠŲˆŲ‡Ø§ØĒ Shorts</string>
Ø§Ų„ØĒŲ‚ŲŠŲŠØ¯: Ų‚Ø¯ Ų„Ø§ ØĒØ¸Ų‡Øą Ų…ØąØ§ØĒ ØšØ¯Ų… Ø§Ų„ØĨØšØŦاب ؁؊ ؈ØļØš Ø§Ų„ØĒØĩŲØ­ Ø§Ų„Ų…ØĒØŽŲŲŠ"</string>
<string name="revanced_ryd_shorts_summary_off">Ų„Ø§ ؊ØĒŲ… ØšØąØļ Ų…ØąØ§ØĒ ØšØ¯Ų… Ø§Ų„ØĨØšØŦاب ؁؊ ŲŲŠØ¯ŲŠŲˆŲ‡Ø§ØĒ Shorts</string>
<string name="revanced_ryd_dislike_percentage_title">Ų„Ų… ŲŠØšØŦØ¨Ų†ŲŠ ŲƒŲ€Ų€ Ų†ØŗØ¨ØŠ Ų…ØĻŲˆŲŠØŠ</string>
<string name="revanced_ryd_dislike_percentage_summary_on">ŲŠØšØąØļ ؚدد Ų„Ų… ŲŠØšØŦØ¨Ų†ŲŠ ŲƒŲ€ Ų†ØŗØ¨ØŠ Ų…ØĻŲˆŲŠØŠ</string>
<string name="revanced_ryd_dislike_percentage_summary_off">ŲŠØšØąØļ ؚدد Ų„Ų… ŲŠØšØŦØ¨Ų†ŲŠ ŲƒŲ€ ØąŲŽŲ‚ŲŽŲ…</string>
<string name="revanced_ryd_dislike_percentage_summary_on">؊ØĒŲ… ØšØąØļ Ų…ØąØ§ØĒ ØšØ¯Ų… Ø§Ų„ØĨØšØŦاب ŲƒŲ†ØŗØ¨ØŠ Ų…ØĻŲˆŲŠØŠ</string>
<string name="revanced_ryd_dislike_percentage_summary_off">؊ØĒŲ… ØšØąØļ Ų…ØąØ§ØĒ ØšØ¯Ų… Ø§Ų„ØĨØšØŦاب ŲƒØąŲ‚Ų…</string>
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button' -->
<string name="revanced_ryd_compact_layout_title">Ų…Ų‚Ø§Øŗ Ø˛Øą ØŖØšØŦØ¨Ų†ŲŠ</string>
<string name="revanced_ryd_compact_layout_summary_on">Ø˛Øą ØŖØšØŦØ¨Ų†ŲŠ Ų…ØĩŲ…Ų… Ų„ØŖØ¯Ų†Ų‰ ØšØąØļ</string>
@@ -914,8 +930,8 @@ Second \"item\" text"</string>
<string name="revanced_sb_enable_compact_skip_button_sum_off">Ø˛Øą Ø§Ų„ØĒØŽØˇŲŠ Ų…ØĩŲ…Ų… Ų„ØŖŲØļŲ„ Ų…Ø¸Ų‡Øą</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button">ØĨØŽŲØ§ØĄ Ø˛Øą Ø§Ų„ØĒØŽØˇŲŠ ØĒŲ„Ų‚Ø§ØĻŲŠŲ‹Ø§</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_on">ØĨØŽŲØ§ØĄ Ø˛Øą Ø§Ų„ØĒØŽØˇŲŠ بؚد بØļØš ØĢŲˆØ§Ų†Ų</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_off">؊ØĒŲ… ØšØąØļ Ø˛Øą \"Ø§Ų„ØĒØŽØˇŲŠ\" Ų„Ų„Ų…Ų‚ØˇØš Ø¨ØŖŲƒŲ…Ų„Ų‡</string>
<string name="revanced_sb_general_skiptoast">ØšØąØļ Ų…Ų„Ø§Ø­Ø¸ØŠ ØšŲ†Ø¯ ØĒØŽØˇŲŠ Ø§Ų„Ų…Ų‚ØˇØš ØĒŲ„Ų‚Ø§ØĻŲŠŲ‹Ø§</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_off">؊ØĒŲ… ØšØąØļ Ø˛Øą Ø§Ų„ØĒØŽØˇŲŠ Ų„Ų„Ų…Ų‚ØˇØš Ø¨ØŖŲƒŲ…Ų„Ų‡</string>
<string name="revanced_sb_general_skiptoast">ØšØąØļ Ų…Ų„Ø§Ø­Ø¸ØŠ ØšŲ†Ø¯ Ø§Ų„ØĒØŽØˇŲŠ</string>
<string name="revanced_sb_general_skiptoast_sum_on">؊ØĒŲ… ØšØąØļ Ų…Ų„Ø§Ø­Ø¸ØŠ ØšŲ†Ø¯Ų…Ø§ ؊ØĒŲ… ØĒØŽØˇŲŠ Ų…Ų‚ØˇØš ØĒŲ„Ų‚Ø§ØĻŲŠŲ‹Ø§. Ø§Ų†Ų‚Øą Ų‡Ų†Ø§ Ų„Ų…Ø´Ø§Ų‡Ø¯ØŠ Ų…ØĢØ§Ų„</string>
<string name="revanced_sb_general_skiptoast_sum_off">Ų„Ų† ؊ØĒŲ… ØšØąØļ Ø§Ų„Ų…Ų„Ø§Ø­Ø¸ØŠ. Ø§Ų†Ų‚Øą Ų‡Ų†Ø§ Ų„Ų…Ø´Ø§Ų‡Ø¯ØŠ Ų…ØĢØ§Ų„</string>
<string name="revanced_sb_general_time_without">ØšØąØļ Ų…Ø¯ØŠ Ø§Ų„ŲŲŠØ¯ŲŠŲˆ Ø¨Ø¯ŲˆŲ† Ø§Ų„Ų…Ų‚Ø§ØˇØš</string>
@@ -1016,7 +1032,7 @@ Second \"item\" text"</string>
<string name="revanced_sb_skipped_multiple_segments">ØĒŲ… ØĒØŽØˇŲŠ ؚد؊ Ų…Ų‚Ø§ØˇØš</string>
<string name="revanced_sb_skip_automatically">Ø§Ų„ØĒØŽØˇŲŠ ØĒŲ„Ų‚Ø§ØĻŲŠŲ‹Ø§</string>
<string name="revanced_sb_skip_automatically_once">Ø§Ų„ØĒØŽØˇŲŠ ØĒŲ„Ų‚Ø§ØĻŲŠŲ‹Ø§ Ų…ØąØŠ ŲˆØ§Ø­Ø¯ØŠ</string>
<string name="revanced_sb_skip_showbutton">ØšØąØļ Ø˛Øą Ø§Ų„ØĒØŽØˇŲŠ</string>
<string name="revanced_sb_skip_showbutton">ØšØąØļ Ø˛Øą \"Ø§Ų„ØĒØŽØˇŲŠ\"</string>
<string name="revanced_sb_skip_seekbaronly">ØšØąØļ ؁؊ Ø´ØąŲŠØˇ ØĒŲ‚Ø¯Ų… Ø§Ų„ŲŲŠØ¯ŲŠŲˆ</string>
<string name="revanced_sb_skip_ignore">ØĒØšØˇŲŠŲ„</string>
<string name="revanced_sb_submit_failed_invalid">ØēŲŠØą Ų‚Ø§Ø¯Øą ØšŲ„Ų‰ ØĨØąØŗØ§Ų„ Ø§Ų„Ų…Ų‚ØˇØš: Ø§Ų„Ø­Ø§Ų„ØŠ: %s</string>
@@ -1065,7 +1081,7 @@ Second \"item\" text"</string>
<string name="revanced_sb_new_segment_edit_by_hand_parse_error">Ø§Ų„ŲˆŲ‚ØĒ Ø§Ų„Ų…Ø­Ø¯Ø¯ ØēŲŠØą ØĩØ­ŲŠØ­</string>
<string name="revanced_sb_stats">ØĨØ­ØĩاØĻŲŠØ§ØĒ</string>
<!-- Shown in the settings preferences, and translations can be any text length. -->
<string name="revanced_sb_stats_connection_failure">Ø§Ų„ØĨØ­ØĩاØĻŲŠØ§ØĒ ØēŲŠØą Ų…ØĒŲˆŲØąØŠ Ų…Ø¤Ų‚ØĒŲ‹Ø§ (API Ų…ØšØˇŲ„)</string>
<string name="revanced_sb_stats_connection_failure">Ø§Ų„ØĨØ­ØĩاØĻŲŠØ§ØĒ ØēŲŠØą Ų…ØĒŲˆŲØąØŠ Ų…Ø¤Ų‚ØĒŲ‹Ø§ (Ø§Ų„ŲˆØ§ØŦŲ‡ØŠ ØēŲŠØą Ų…ØĒŲˆŲØąØŠ)</string>
<string name="revanced_sb_stats_loading">ØŦØ§ØąŲ Ø§Ų„ØĒØ­Ų…ŲŠŲ„...</string>
<string name="revanced_sb_stats_sb_disabled">ØĒŲ… ØĒØšØˇŲŠŲ„ SponsorBlock</string>
<string name="revanced_sb_stats_username">Ø§ØŗŲ… Ø§Ų„Ų…ØŗØĒØŽØ¯Ų… Ø§Ų„ØŽØ§Øĩ Ø¨Ųƒ: &lt;b&gt;%s&lt;/b&gt;</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

@@ -45,7 +45,7 @@ Second \"item\" text"</string>
<!-- 'For you' should be translated using the same localized wording YouTube displays. -->
<!-- '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. -->
<!-- 'People also watch' should be translated using the same localized wording YouTube displays. -->
<!-- 'People also watched' should be translated using the same localized wording YouTube displays. -->
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
@@ -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,16 +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ə bildiriş gÃļstər</string>
<string name="revanced_debug_toast_on_error_summary_off">Xəta baş verərsə bildiriş gÃļstərmə</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_title">Bəyən və Abunə ol dÃŧyməsi 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_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>
@@ -193,22 +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əsini gizlət</string>
<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">Kanal yerində \"Sizin ÃŧçÃŧn\" qismin gizlə</string>
<string name="revanced_hide_for_you_shelf_summary_on">BÃļlmə gizlidir</string>
<string name="revanced_hide_for_you_shelf_summary_off">BÃļlmə gÃļstərilir</string>
<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 watch' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_search_result_recommendations_title">\'İnsanlarÄąn baxdÄąqlarÄą\' tÃļvsiyələrin gizlə</string>
<string name="revanced_hide_search_result_recommendations_summary_on">TÃļvsiyələr gizlidir</string>
<string name="revanced_hide_search_result_recommendations_summary_off">TÃļvsiyələr 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>
@@ -224,8 +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">AÃ§Äąlan kartlar gizlidir</string>
<string name="revanced_hide_expandable_chip_summary_off">AÃ§Äąlan kartlar gÃļrÃŧnÃŧr</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>
@@ -241,7 +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əliklərin icma təlimatlarını gizlət</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>
@@ -280,63 +277,63 @@ 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 bÃļlməsini gizlət</string>
<string name="revanced_hide_attributes_section_summary_on">\"Seçilən məkanlar\", Oyunlar və Musiqi bÃļlmələri gizlidir</string>
<string name="revanced_hide_attributes_section_summary_off">\"Seçilən məkanlar\", Oyunlar və Musiqi bÃļlmələri gÃļstərilir</string>
<string name="revanced_hide_chapters_section_title">BÃļlÃŧmlər bÃļlməsini gizlət</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\" bÃļlməsini gizlət</string>
<string name="revanced_hide_how_this_was_made_section_summary_on">\"Bu məzmun necə hazÄąrlanÄąb\" bÃļlməsi gizlidir</string>
<string name="revanced_hide_how_this_was_made_section_summary_off">\"Bu məzmun necə hazÄąrlanÄąb\" bÃļlməsi gÃļrÃŧnÃŧr</string>
<string name="revanced_hide_podcast_section_title">\'PodkastÄą kəşf et\' bÃļlməsini gizlət</string>
<string name="revanced_hide_podcast_section_summary_on">\"PodkastÄą kəşf et\" bÃļlməsi gizlədilir</string>
<string name="revanced_hide_podcast_section_summary_off">\"PodkastÄą kəşf et\" bÃļlməsi gÃļstərilir</string>
<string name="revanced_hide_info_cards_section_title">Məlumat kartlarÄą bÃļlməsini gizlət</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\" bÃļlməsini 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Ãļstərilir</string>
<string name="revanced_hide_transcript_section_title">Transkripsiya bÃļlməsini gizlət</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\" gizlədilir</string>
<string name="revanced_hide_comments_chat_summary_summary_off">\'SÃļhbət yekunu\' gÃļstərilir</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ığı gizlədilib</string>
<string name="revanced_hide_comments_by_members_header_summary_off">\"Üzvlərin şərhləri\" başlığı gÃļstərilir</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">\"Shorts yarat\" dÃŧyməsi gizlidir</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">\"Shorts yarat\" dÃŧyməsi gÃļstərilir</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>
<string name="revanced_hide_comments_thanks_button_title">TəşəkkÃŧr DÃŧyməsini Gizlət</string>
<string name="revanced_hide_comments_thanks_button_summary_on">TəşəkkÃŧr dÃŧyməsi gizlidir</string>
<string name="revanced_hide_comments_thanks_button_summary_off">TəşəkkÃŧr dÃŧyməsi gÃļstərilir</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Vaxt mÃļhÃŧrÃŧ və emoji dÃŧymələrin gizlə</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Vaxt mÃļhÃŧrÃŧ və emoji dÃŧymələri gizlədilib</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Vaxt mÃļhÃŧrÃŧ və emoji dÃŧymələri gÃļstərilir</string>
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<string name="revanced_hide_doodles_title">YouTube Doodle-ları gizlət</string>
<string name="revanced_hide_doodles_summary_on">AxtarÄąÅŸ çubuğu Doodle-larÄą gizlidir</string>
@@ -407,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>
@@ -417,12 +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">AlÄąÅŸ-veriş bağlantÄąlarÄą gizlədilir</string>
<string name="revanced_hide_shopping_links_summary_off">AlÄąÅŸ-veriş bağlantÄąlarÄą gÃļstərilir</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">DÃŧymə gizlidir</string>
<string name="revanced_hide_visit_store_button_summary_off">DÃŧymə gÃļstərilir</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>
@@ -446,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">
@@ -462,8 +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">YÃŧkləmə dÃŧyməsi oynadÄącÄąda gÃļstərilir</string>
<string name="revanced_external_downloader_summary_off">YÃŧkləmə dÃŧyməsi oynadÄącÄąda gÃļstərilmir</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>
@@ -484,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>
@@ -501,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>
@@ -523,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>
@@ -575,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>
@@ -650,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>
@@ -795,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>
@@ -831,7 +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çatmazdÄąr (qəbuledici API limitinə çatdÄą)</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>
@@ -840,14 +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ə sayÄą \"Shorts\"da gÃļstərilir</string>
<string name="revanced_ryd_shorts_summary_on_disclaimer">"Shorts-da gÃļrÃŧnən bəyənməmələr
<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Ãŧr"</string>
<string name="revanced_ryd_shorts_summary_off">\"Bəyənməmə\"lər \"Shorts\"da gizlidir</string>
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 olaraq gÃļstərilir</string>
<string name="revanced_ryd_dislike_percentage_summary_off">\"Bəyənməmə\"lər nÃļmrəylə gÃļstərilir</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>
@@ -909,20 +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">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">Tam bÃļlÃŧm ÃŧçÃŧn gÃļstərilən ÃļtÃŧrmə dÃŧyməsi</string>
<string name="revanced_sb_general_skiptoast">Birbaşa ÃļtÃŧrÃŧləndə ani bildiriş gÃļstər</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">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>
@@ -1016,7 +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_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>
@@ -1042,9 +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">bitiş</string>
<string name="revanced_sb_new_segment_now">indi</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>
@@ -1065,7 +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 olaraq əlçatmazdÄąr (API zəifdir)</string>
<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>
@@ -1179,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>
@@ -1283,13 +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 əlçatan deyil (status kodu: %s)</string>
<string name="revanced_alt_thumbnail_dearrow_error_generic">DeArrow mÃŧvəqqəti olaraq əlçatan deyil</string>
<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 aÃ§ÄąlÄąÅŸda gÃļstərilir</string>
<string name="revanced_announcements_summary_off">Elanlar aÃ§ÄąlÄąÅŸda gÃļstərilmir</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Äą aÃ§Äą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>
@@ -1325,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>
@@ -1339,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

@@ -161,16 +161,13 @@ Second \"item\" text"</string>
<string name="revanced_debug_stacktrace_summary_on">Đ–ŅƒŅ€ĐŊаĐģŅ‹ адĐģадĐēŅ– ŅžĐēĐģŅŽŅ‡Đ°ŅŽŅ†ŅŒ Ņ‚Ņ€Đ°ŅŅ–Ņ€ĐžŅžĐē҃ ŅŅ‚ŅĐēа</string>
<string name="revanced_debug_stacktrace_summary_off">Đ–ŅƒŅ€ĐŊаĐģŅ‹ адĐģадĐēŅ– ĐŊĐĩ ŅžĐēĐģŅŽŅ‡Đ°ŅŽŅ†ŅŒ Ņ‚Ņ€Đ°ŅŅ–Ņ€ĐžŅžĐē҃ ŅŅ‚ŅĐēа</string>
<string name="revanced_debug_toast_on_error_title">ПаĐēĐ°ĐˇĐ°Ņ†ŅŒ Ņ‚ĐžŅŅ‚ ĐŋҀҋ ĐŋаĐŧŅ‹Đģ҆ҋ ReVanced</string>
<string name="revanced_debug_toast_on_error_summary_on">ĐĸĐžŅŅ‚ ĐŋаĐēаСваĐĩŅ†Ņ†Đ°, ĐēаĐģŅ– ŅžĐˇĐŊŅ–ĐēаĐĩ ĐŋаĐŧŅ‹ĐģĐēа</string>
<string name="revanced_debug_toast_on_error_summary_off">ĐĸĐžŅŅ‚ ĐŊĐĩ ĐŋаĐēаСваĐĩŅ†Ņ†Đ°, ĐēаĐģŅ– ŅžĐˇĐŊŅ–ĐēаĐĩ ĐŋаĐŧŅ‹ĐģĐēа</string>
<string name="revanced_debug_toast_on_error_summary_on">ПаĐēĐ°ĐˇĐ˛Đ°Ņ†ŅŒ toast ҃ Đ˛Ņ‹ĐŋадĐē҃ ĐŋаĐŧŅ‹ĐģĐēŅ–</string>
<string name="revanced_debug_toast_on_error_summary_off">НĐĩ ĐŋаĐēĐ°ĐˇĐ˛Đ°Ņ†ŅŒ toast ҃ Đ˛Ņ‹ĐŋадĐē҃ ĐŋаĐŧŅ‹ĐģĐēŅ–</string>
<string name="revanced_debug_toast_on_error_user_dialog_message">"АдĐēĐģŅŽŅ‡ŅĐŊĐŊĐĩ ĐŋавĐĩдаĐŧĐģĐĩĐŊĐŊŅŅž ĐŋŅ€Đ° ĐŋаĐŧŅ‹ĐģĐēŅ– ŅŅ…Đ°Đ˛Đ°Đĩ ŅžŅĐĩ аĐŋĐ°Đ˛ŅŅˆŅ‡ŅĐŊĐŊŅ– ReVanced ĐŋŅ€Đ° ĐŋаĐŧŅ‹ĐģĐēŅ–.
Đ’Ņ‹ ĐŊĐĩ ĐąŅƒĐ´ĐˇĐĩ҆Đĩ Đ°Ņ‚Ņ€Ņ‹ĐŧĐģŅ–Đ˛Đ°Ņ†ŅŒ аĐŋĐ°Đ˛ŅŅˆŅ‡ŅĐŊĐŊŅ– ĐŋŅ€Đ° ĐŊĐĩŅ‡Đ°ĐēаĐŊŅ‹Ņ ĐŋадСĐĩŅ–."</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>
@@ -193,22 +190,22 @@ Second \"item\" text"</string>
<string name="revanced_hide_horizontal_shelves_summary_off">ПаĐēаСаĐŊŅ‹ ĐŋаĐģҖ҆ҋ</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">ĐĄŅ…Đ°Đ˛Đ°Ņ†ŅŒ ĐēĐŊĐžĐŋĐē҃ \"ДаĐģŅƒŅ‡Ņ‹Ņ†Ņ†Đ°\"</string>
<string name="revanced_hide_join_membership_button_title">ĐĄŅ…Đ°Đ˛Đ°Ņ†ŅŒ ĐēĐŊĐžĐŋĐē҃ ÂĢДаĐģŅƒŅ‡Ņ‹Ņ†Ņ†Đ°Âģ</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>
<string name="revanced_hide_notify_me_button_summary_on">КĐŊĐžĐŋĐēа ŅŅ…Đ°Đ˛Đ°ĐŊа</string>
<string name="revanced_hide_notify_me_button_summary_off">ПаĐēаСаĐŊа ĐēĐŊĐžĐŋĐēа</string>
<!-- 'People also watch' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_search_result_recommendations_title">ĐĄŅ…Đ°Đ˛Đ°Ņ†ŅŒ Ņ€ŅĐēаĐŧĐĩĐŊĐ´Đ°Ņ†Ņ‹Ņ– \"Đ›ŅŽĐ´ĐˇŅ– Ņ‚Đ°ĐēŅĐ°Đŧа ĐŗĐģŅĐ´ĐˇĐĩĐģŅ–\"</string>
<string name="revanced_hide_search_result_recommendations_summary_on">Đ ŅĐēаĐŧĐĩĐŊĐ´Đ°Ņ†Ņ‹Ņ– ŅŅ…Đ°Đ˛Đ°ĐŊŅ‹Ņ</string>
<string name="revanced_hide_search_result_recommendations_summary_off">ПаĐēаСаĐŊŅ‹ Ņ€ŅĐēаĐŧĐĩĐŊĐ´Đ°Ņ†Ņ‹Ņ–</string>
<!-- 'People also watched' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_search_result_recommendations_title">ĐĄŅ…Đ°Đ˛Đ°Ņ†ŅŒ ĐŊадĐŋҖҁ ÂĢĐ›ŅŽĐ´ĐˇŅ– Ņ‚Đ°ĐēŅĐ°Đŧа ĐŗĐģŅĐ´ĐˇĐĩĐģŅ–Âģ</string>
<string name="revanced_hide_search_result_recommendations_summary_on">НадĐŋҖҁ ŅŅ…Đ°Đ˛Đ°ĐŊŅ‹</string>
<string name="revanced_hide_search_result_recommendations_summary_off">НадĐŋҖҁ ĐŋаĐēаСаĐŊŅ‹</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">ĐĄŅ…Đ°Đ˛Đ°Ņ†ŅŒ ĐēĐŊĐžĐŋĐē҃ \"ПаĐēĐ°ĐˇĐ°Ņ†ŅŒ йОĐģҌ҈\"</string>
@@ -224,8 +221,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>
@@ -241,7 +238,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_community_guidelines_title">ĐĄŅ…Đ°Đ˛Đ°Ņ†ŅŒ ĐŋŅ€Đ°Đ˛Ņ–ĐģŅ‹ ҁ҃ĐŋĐžĐģҌĐŊĐ°ŅŅ†Ņ–</string>
<string name="revanced_hide_community_guidelines_summary_on">ĐŸŅ€Đ°Đ˛Ņ–ĐģŅ‹ ҁ҃ĐŋĐžĐģҌĐŊĐ°ŅŅ†Ņ– ŅŅ…Đ°Đ˛Đ°ĐŊŅ‹Ņ</string>
<string name="revanced_hide_community_guidelines_summary_off">ПаĐēаСаĐŊŅ‹ ĐŋŅ€Đ°Đ˛Ņ–ĐģŅ‹ ҁ҃ĐŋĐžĐģҌĐŊĐ°ŅŅ†Ņ–</string>
<string name="revanced_hide_subscribers_community_guidelines_title">ĐĄŅ…Đ°Đ˛Đ°Ņ†ŅŒ ĐŋŅ€Đ°Đ˛Ņ–ĐģŅ‹ ҁ҃ĐŋĐžĐģҌĐŊĐ°ŅŅ†Ņ– ĐŋадĐŋҖҁ҇ҋĐēĐ°Ņž</string>
<string name="revanced_hide_subscribers_community_guidelines_title">ĐĄŅ…Đ°Đ˛Đ°Ņ†ŅŒ Ņ€ŅĐēаĐŧĐĩĐŊĐ´Đ°Ņ†Ņ‹Ņ– Đ´ĐģŅ ĐŋадĐŋҖҁ҇ҋĐēĐ°Ņž</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_on">ĐŸŅ€Đ°Đ˛Ņ–ĐģŅ‹ ҁ҃ĐŋĐžĐģҌĐŊĐ°ŅŅ†Ņ– ĐŋадĐŋҖҁ҇ҋĐēĐ°Ņž ŅŅ…Đ°Đ˛Đ°ĐŊŅ‹</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_off">ПаĐēаСаĐŊŅ‹ ĐŋŅ€Đ°Đ˛Ņ–ĐģŅ‹ ҁ҃ĐŋĐžĐģҌĐŊĐ°ŅŅ†Ņ– ĐŋадĐŋҖҁ҇ҋĐēĐ°Ņž</string>
<string name="revanced_hide_channel_member_shelf_title">ĐĄŅ…Đ°Đ˛Đ°Ņ†ŅŒ ĐŋаĐģŅ–Ņ†Ņƒ ŅžĐ´ĐˇĐĩĐģҌĐŊŅ–Đēа ĐēаĐŊаĐģа</string>
@@ -280,63 +277,63 @@ 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">РаСдСĐĩĐģŅ‹ ÂĢПаĐŋ҃ĐģŅŅ€ĐŊŅ‹Ņ ĐŧĐĩҁ҆ҋÂģ, ÂĢĐ“ŅƒĐģҌĐŊŅ–Âģ, ÂĢĐœŅƒĐˇŅ‹ĐēаÂģ Ņ– ÂĢĐ›ŅŽĐ´ĐˇŅ–, ŅĐēŅ–Ņ… ĐˇĐŗĐ°Đ´Đ˛Đ°ĐģŅ–Âģ ŅŅ…Đ°Đ˛Đ°ĐŊŅ‹Ņ</string>
<string name="revanced_hide_attributes_section_summary_off">РаСдСĐĩĐģŅ‹ ÂĢПаĐŋ҃ĐģŅŅ€ĐŊŅ‹Ņ ĐŧĐĩҁ҆ҋÂģ, ÂĢĐ“ŅƒĐģҌĐŊŅ–Âģ, ÂĢĐœŅƒĐˇŅ‹ĐēаÂģ Ņ– ÂĢĐ›ŅŽĐ´ĐˇŅ–, ŅĐēŅ–Ņ… ĐˇĐŗĐ°Đ´Đ˛Đ°ĐģŅ–Âģ ĐŋаĐēаСаĐŊŅ‹Ņ</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">ĐĄŅ…Đ°Đ˛Đ°Ņ†ŅŒ Ņ€Đ°ĐˇĐ´ĐˇĐĩĐģ \"Đ”Đ°ŅĐģĐĩĐ´Đ°Đ˛Đ°Ņ†ŅŒ ĐŋадĐēĐ°ŅŅ‚\"</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_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">ĐĄŅ…Đ°Đ˛Đ°Ņ†ŅŒ ÂĢПазĐŊĐ°Ņ‘Đŧ҆ĐĩŅŅ С ĐŋадĐēĐ°ŅŅ‚Đ°ĐŧÂģ</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>
<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>
<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_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_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_create_a_short_button_summary_on">КĐŊĐžĐŋĐēа ÂĢĐĄŅ‚Đ˛Đ°Ņ€Ņ‹Ņ†ŅŒ ShortsÂģ ŅŅ…Đ°Đ˛Đ°ĐŊĐ°Ņ</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">КĐŊĐžĐŋĐēа ÂĢĐĄŅ‚Đ˛Đ°Ņ€Ņ‹Ņ†ŅŒ ShortsÂģ ĐŋаĐēаСаĐŊĐ°Ņ</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">ĐĄŅ…Đ°Đ˛Đ°Ņ†ŅŒ ĐēĐŊĐžĐŋĐēŅ– ŅĐŧĐžĐ´ĐˇŅ– Ņ– адСĐŊаĐē Ņ‡Đ°ŅŅƒ</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>
<string name="revanced_hide_comments_thanks_button_title">ĐĄŅ…Đ°Đ˛Đ°Ņ†ŅŒ ĐēĐŊĐžĐŋĐē҃ \"Đ”ĐˇŅĐēŅƒĐš\"\"</string>
<string name="revanced_hide_comments_thanks_button_summary_on">КĐŊĐžĐŋĐēа ĐŋĐ°Đ´ĐˇŅĐēŅ– ŅŅ…Đ°Đ˛Đ°ĐŊа</string>
<string name="revanced_hide_comments_thanks_button_summary_off">ПаĐēаСаĐŊа ĐēĐŊĐžĐŋĐēа ĐŋĐ°Đ´ĐˇŅĐēŅ–</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">ĐĄŅ…Đ°Đ˛Đ°Ņ†ŅŒ ĐŧĐĩŅ‚Đē҃ Ņ‡Đ°ŅŅƒ Ņ– ĐēĐŊĐžĐŋĐēŅ– ŅĐŧĐžĐ´ĐˇŅ–</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>
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<string name="revanced_hide_doodles_title">ĐĄŅ…Đ°Đ˛Đ°Ņ†ŅŒ YouTube Doodles</string>
<string name="revanced_hide_doodles_summary_on">Doodles ҃ ĐŋаĐŊŅĐģŅ– ĐŋĐžŅˆŅƒĐē҃ ŅŅ…Đ°Đ˛Đ°ĐŊŅ‹</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>
@@ -417,12 +414,12 @@ Second \"item\" text"</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_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_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>
@@ -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">
@@ -462,8 +459,8 @@ Second \"item\" text"</string>
<string name="revanced_external_downloader_screen_title">ЗĐŊĐĩ҈ĐŊŅ–Ņ ĐˇĐ°ĐŗŅ€ŅƒĐˇĐēŅ–</string>
<string name="revanced_external_downloader_screen_summary">НаĐģĐ°Đ´Ņ‹ Đ´ĐģŅ Đ˛Ņ‹ĐēĐ°Ņ€Ņ‹ŅŅ‚Đ°ĐŊĐŊŅ вОĐŊĐēĐ°Đ˛Đ°ĐŗĐ° ĐˇĐ°ĐŗŅ€ŅƒĐˇĐŊŅ–Đēа</string>
<string name="revanced_external_downloader_title">ПаĐēĐ°ĐˇĐ°Ņ†ŅŒ СĐŊĐĩ҈ĐŊŅŽŅŽ ĐēĐŊĐžĐŋĐē҃ ĐˇĐ°ĐŗŅ€ŅƒĐˇĐēŅ–</string>
<string name="revanced_external_downloader_summary_on">КĐŊĐžĐŋĐēа ĐˇĐ°ĐŗŅ€ŅƒĐˇĐēŅ– ĐŋаĐēаСваĐĩŅ†Ņ†Đ° Ņž ĐŋĐģŅĐĩҀҋ</string>
<string name="revanced_external_downloader_summary_off">КĐŊĐžĐŋĐēа ĐˇĐ°ĐŗŅ€ŅƒĐˇĐēŅ– ĐŊĐĩ адĐģŅŽŅŅ‚Ņ€ĐžŅžĐ˛Đ°ĐĩŅ†Ņ†Đ° Ņž ĐŋĐģŅĐĩҀҋ</string>
<string name="revanced_external_downloader_summary_on">КĐŊĐžĐŋĐēа ĐˇĐ°ĐŗŅ€ŅƒĐˇĐēŅ– Ņž ĐŋŅ€Đ°ĐšĐŗŅ€Đ°Đ˛Đ°ĐģҌĐŊŅ–Đē҃ ĐŋаĐēаСаĐŊĐ°Ņ</string>
<string name="revanced_external_downloader_summary_off">КĐŊĐžĐŋĐēа ĐˇĐ°ĐŗŅ€ŅƒĐˇĐēŅ– Ņž ĐŋŅ€Đ°ĐšĐŗŅ€Đ°Đ˛Đ°ĐģҌĐŊŅ–Đē҃ ĐŊĐĩ ĐŋаĐēаСаĐŊĐ°Ņ</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">ПĐĩŅ€Đ°Đ˛Ņ‹ĐˇĐŊĐ°Ņ‡Ņ‹Ņ†ŅŒ ĐēĐŊĐžĐŋĐē҃ дСĐĩŅĐŊĐŊŅ– ҁĐŋаĐŧĐŋĐžŅžĐēŅ–</string>
<string name="revanced_external_downloader_action_button_summary_on">КĐŊĐžĐŋĐēа \"ĐĄĐŋаĐŧĐŋĐ°Đ˛Đ°Ņ†ŅŒ\" адĐēŅ€Ņ‹Đ˛Đ°Đĩ Đ˛Đ°Ņˆ СĐŊĐĩ҈ĐŊŅ– ĐˇĐ°ĐŗŅ€ŅƒĐˇĐŊŅ–Đē</string>
@@ -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>
@@ -831,7 +847,7 @@ Second \"item\" text"</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">АдСĐŊаĐēŅ– \"НĐĩ ĐŋадайаĐĩŅ†Ņ†Đ°\" Ņ‡Đ°ŅĐžĐ˛Đ° ĐŊĐĩĐ´Đ°ŅŅ‚ŅƒĐŋĐŊŅ‹Ņ (Ņ‡Đ°Ņ Ņ‡Đ°ĐēаĐŊĐŊŅ API ҁĐēĐžĐŊŅ‡Ņ‹ŅžŅŅ)</string>
<string name="revanced_ryd_failure_connection_status_code">Đ”Ņ‹ĐˇĐģаКĐēŅ– ĐŊĐĩĐ´Đ°ŅŅ‚ŅƒĐŋĐŊŅ‹Ņ (ŅŅ‚Đ°Ņ‚ŅƒŅ %d)</string>
<string name="revanced_ryd_failure_client_rate_limit_requested">Đ”Ņ‹ĐˇĐģаКĐēŅ– ĐŊĐĩĐ´Đ°ŅŅ‚ŅƒĐŋĐŊŅ‹Ņ (Đ´Đ°ŅŅĐŗĐŊŅƒŅ‚Ņ‹ ĐģŅ–ĐŧŅ–Ņ‚ ĐēĐģŅ–ĐĩĐŊ҆ĐēĐ°ĐŗĐ° API)</string>
<string name="revanced_ryd_failure_client_rate_limit_requested">НĐĩĐ´Đ°ŅŅ‚ŅƒĐŋĐŊŅ‹Ņ Đ´Ņ‹ĐˇĐģаКĐēŅ– (ĐģŅ–ĐŧŅ–Ņ‚ API ĐēĐģŅ–ĐĩĐŊŅ‚Đ°)</string>
<string name="revanced_ryd_failure_generic">НĐĩ ĐŋадайаĐĩŅ†Ņ†Đ° (%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">ПĐĩŅ€Đ°ĐˇĐ°ĐŗŅ€ŅƒĐˇŅ–Ņ†Đĩ Đ˛Ņ–Đ´ŅĐ°, Đēай ĐŋŅ€Đ°ĐŗĐ°ĐģĐ°ŅĐ°Đ˛Đ°Ņ†ŅŒ С даĐŋаĐŧĐžĐŗĐ°Đš Ņ„ŅƒĐŊĐē҆ҋҖ \"Đ’ŅŅ€ĐŊŅƒŅ†ŅŒ ĐŊĐĩ ĐŋадайаĐĩŅ†Ņ†Đ° YouTube\"</string>
@@ -840,14 +856,14 @@ Second \"item\" text"</string>
<string name="revanced_ryd_enable_summary_on">Đ”Ņ‹ĐˇĐģаКĐēŅ– ĐŋаĐēаСаĐŊŅ‹</string>
<string name="revanced_ryd_enable_summary_off">Đ”Ņ‹ĐˇĐģаКĐēŅ– ĐŊĐĩ ĐŋаĐēĐ°ĐˇĐ˛Đ°ŅŽŅ†Ņ†Đ°</string>
<string name="revanced_ryd_shorts_title">ПаĐēĐ°ĐˇĐ˛Đ°ĐšŅ†Đĩ \"ĐŊĐĩ ĐŋадайаĐĩŅ†Ņ†Đ°\" ĐŊа Shorts</string>
<string name="revanced_ryd_shorts_summary_on">АдСĐŊаĐēŅ– \"ĐŊĐĩ ĐŋадайаĐĩŅ†Ņ†Đ°\" Ņž Shorts</string>
<string name="revanced_ryd_shorts_summary_on_disclaimer">"НĐĩĐŋаĐŋадаĐŊĐŊŅ ĐŋаĐēаСаĐŊŅ‹ ĐŊа Shorts
<string name="revanced_ryd_shorts_summary_on">Đ”Ņ‹ĐˇĐģаКĐēŅ– ĐŊа Shorts ĐŋаĐēаСаĐŊŅ‹Ņ</string>
<string name="revanced_ryd_shorts_summary_on_disclaimer">"Đ”Ņ‹ĐˇĐģаКĐēŅ– ĐŊа Shorts ĐŋаĐēаСаĐŊŅ‹Ņ
АйĐŧĐĩĐļаваĐŊĐŊĐĩ: НĐĩĐŋаĐŋадаĐŊĐŊŅ ĐŧĐžĐŗŅƒŅ†ŅŒ ĐŊĐĩ С'ŅŅžĐģŅŅ†Ņ†Đ° Ņž Ņ€ŅĐļŅ‹ĐŧĐĩ Ņ–ĐŊĐēĐžĐŗĐŊŅ–Ņ‚Đ°"</string>
<string name="revanced_ryd_shorts_summary_off">Đ”Ņ‹ĐˇĐģаĐēŅ– ŅŅ…Đ°Đ˛Đ°ĐŊŅ‹Ņ Ņž Shorts</string>
АйĐŧĐĩĐļаваĐŊĐŊĐĩ: Đ´Ņ‹ĐˇĐģаКĐēŅ– ĐŧĐžĐŗŅƒŅ†ŅŒ ĐŊĐĩ адĐģŅŽŅŅ‚Ņ€ĐžŅžĐ˛Đ°Ņ†Ņ†Đ° Ņž Ņ€ŅĐļŅ‹ĐŧĐĩ Ņ–ĐŊĐēĐžĐŗĐŊŅ–Ņ‚Đ°"</string>
<string name="revanced_ryd_shorts_summary_off">Đ”Ņ‹ĐˇĐģаКĐēŅ– ĐŊа Shorts ĐŊĐĩ ĐŋаĐēаСаĐŊŅ‹Ņ</string>
<string name="revanced_ryd_dislike_percentage_title">Đ”Ņ‹ĐˇĐģаКĐēŅ– Ņž ĐŋŅ€Đ°Ņ†ŅĐŊŅ‚Đ°Ņ…</string>
<string name="revanced_ryd_dislike_percentage_summary_on">НĐĩŅžĐŋадайаĐŊĐŊŅ– ĐŋаĐēаСаĐŊŅ‹ Ņž ĐŋŅ€Đ°Ņ†ŅĐŊŅ‚Đ°Ņ…</string>
<string name="revanced_ryd_dislike_percentage_summary_off">НĐĩŅžĐŋадайаĐŊĐŊŅ– ĐŋаĐēаСаĐŊŅ‹ Ņž Đ˛Ņ‹ĐŗĐģŅĐ´ĐˇĐĩ ĐēĐžĐģҌĐēĐ°ŅŅ†Ņ–</string>
<string name="revanced_ryd_dislike_percentage_summary_on">Đ”Ņ‹ĐˇĐģаКĐēŅ– ĐŋаĐēаСаĐŊŅ‹ Ņž ĐŋŅ€Đ°Ņ†ŅĐŊŅ‚Đ°Ņ…</string>
<string name="revanced_ryd_dislike_percentage_summary_off">Đ”Ņ‹ĐˇĐģаКĐēŅ– ĐŋаĐēаСаĐŊŅ‹ ĐģŅ–Ņ‡ĐąĐ°Đš</string>
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button' -->
<string name="revanced_ryd_compact_layout_title">КаĐŧĐŋаĐēŅ‚ĐŊŅ‹ Đ´Ņ‹ĐˇĐ°ĐšĐŊ ĐēĐŊĐžĐŋаĐē ÂĢПадабаĐĩŅ†Ņ†Đ°Âģ Ņ– ÂĢНĐĩ ĐŋадайаĐĩŅ†Ņ†Đ°Âģ</string>
<string name="revanced_ryd_compact_layout_summary_on">КĐŊĐžĐŋĐēа \"ПадабаĐĩŅ†Ņ†Đ°\" Ņž ҁ҂ҋĐģŅ– ĐŧŅ–ĐŊŅ–ĐŧаĐģҌĐŊаК ŅˆŅ‹Ņ€Ņ‹ĐŊŅ–</string>
@@ -909,20 +925,20 @@ Second \"item\" text"</string>
<string name="revanced_sb_square_layout_sum_on">КĐŊĐžĐŋĐēŅ– Ņ– ŅĐģĐĩĐŧĐĩĐŊ҂ҋ ĐēŅ–Ņ€Đ°Đ˛Đ°ĐŊĐŊŅ ĐēĐ˛Đ°Đ´Ņ€Đ°Ņ‚ĐŊŅ‹Ņ</string>
<string name="revanced_sb_square_layout_sum_off">КĐŊĐžĐŋĐēŅ– Ņ– ŅĐģĐĩĐŧĐĩĐŊ҂ҋ ĐēŅ–Ņ€Đ°Đ˛Đ°ĐŊĐŊŅ СаĐēŅ€ŅƒĐŗĐģĐĩĐŊŅ‹</string>
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title' -->
<string name="revanced_sb_enable_compact_skip_button">Đ’Ņ‹ĐēĐ°Ņ€Ņ‹ŅŅ‚ĐžŅžĐ˛Đ°ĐšŅ†Đĩ ĐēĐŊĐžĐŋĐē҃ ĐēаĐŧĐŋаĐēŅ‚ĐŊĐ°ĐŗĐ° ĐŋŅ€ĐžĐŋ҃ҁĐē҃</string>
<string name="revanced_sb_enable_compact_skip_button">Đ’Ņ‹ĐēĐ°Ņ€Ņ‹ŅŅ‚ĐžŅžĐ˛Đ°Ņ†ŅŒ ĐēаĐŧĐŋаĐēŅ‚ĐŊŅƒŅŽ ĐēĐŊĐžĐŋĐē҃ ÂĢĐŸŅ€Đ°ĐŋŅƒŅŅ†Ņ–Ņ†ŅŒÂģ</string>
<string name="revanced_sb_enable_compact_skip_button_sum_on">КĐŊĐžĐŋĐēа \"ĐŸŅ€Đ°ĐŋŅƒŅŅ†Ņ–Ņ†ŅŒ\" ҃ ҁ҂ҋĐģŅ– ĐŧŅ–ĐŊŅ–ĐŧаĐģҌĐŊаК ŅˆŅ‹Ņ€Ņ‹ĐŊŅ–</string>
<string name="revanced_sb_enable_compact_skip_button_sum_off">КĐŊĐžĐŋĐēа \"ĐŸŅ€Đ°ĐŋŅƒŅŅ†Ņ–Ņ†ŅŒ\" Đ°Ņ„ĐžŅ€ĐŧĐģĐĩĐŊа Đ´ĐģŅ ĐģĐĩĐŋŅˆĐ°ĐŗĐ° Đ˛Ņ‹ĐŗĐģŅĐ´Ņƒ</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button">ĐŅžŅ‚Đ°ĐŧĐ°Ņ‚Ņ‹Ņ‡ĐŊа Ņ…Đ°Đ˛Đ°Ņ†ŅŒ ĐēĐŊĐžĐŋĐē҃ ĐŋŅ€ĐžĐŋ҃ҁĐē҃</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button">ĐŅžŅ‚Đ°ĐŧĐ°Ņ‚Ņ‹Ņ‡ĐŊа Ņ…Đ°Đ˛Đ°Ņ†ŅŒ ĐēĐŊĐžĐŋĐē҃ ÂĢĐŸŅ€Đ°ĐŋŅƒŅŅ†Ņ–Ņ†ŅŒÂģ</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_on">КĐŊĐžĐŋĐēа \"ĐŸŅ€Đ°ĐŋŅƒŅŅ†Ņ–Ņ†ŅŒ\" ҁĐēŅ€Ņ‹Đ˛Đ°ĐĩŅ†Ņ†Đ° ĐŋŅ€Đ°Đˇ ĐŊĐĩĐēаĐģҌĐēŅ– ҁĐĩĐē҃ĐŊĐ´</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_off">КĐŊĐžĐŋĐēа \"ĐŸŅ€Đ°ĐŋŅƒŅŅ†Ņ–Ņ†ŅŒ\" адĐģŅŽŅŅ‚Ņ€ĐžŅžĐ˛Đ°ĐĩŅ†Ņ†Đ° Đ´ĐģŅ ŅžŅŅĐŗĐž ҁĐĩĐŗĐŧĐĩĐŊŅ‚Đ°</string>
<string name="revanced_sb_general_skiptoast">ПаĐēĐ°ĐˇĐ°Ņ†ŅŒ Ņ‚ĐžŅŅ‚ ĐŋҀҋ Đ°ŅžŅ‚Đ°ĐŧĐ°Ņ‚Ņ‹Ņ‡ĐŊŅ‹Đŧ ĐŋŅ€ĐžĐŋ҃ҁĐē҃</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_off">КĐŊĐžĐŋĐēа ÂĢĐŸŅ€Đ°ĐŋŅƒŅŅ†Ņ–Ņ†ŅŒÂģ ĐŋаĐēаСаĐŊа Đ´ĐģŅ ŅžŅŅĐŗĐž ҁĐĩĐŗĐŧĐĩĐŊŅ‚Đ°</string>
<string name="revanced_sb_general_skiptoast">ПаĐēĐ°ĐˇĐ˛Đ°Ņ†ŅŒ toast ĐŋҀҋ ĐŋŅ€ĐžĐŋ҃ҁĐē҃</string>
<string name="revanced_sb_general_skiptoast_sum_on">ĐĸĐžŅŅ‚ ĐŋаĐēаСваĐĩŅ†Ņ†Đ°, ĐēаĐģŅ– ҁĐĩĐŗĐŧĐĩĐŊŅ‚ Đ°ŅžŅ‚Đ°ĐŧĐ°Ņ‚Ņ‹Ņ‡ĐŊа ĐŋŅ€Đ°Đŋ҃ҁĐēаĐĩŅ†Ņ†Đ°. ĐĐ°Ņ†Ņ–ŅĐŊҖ҆Đĩ Ņ‚ŅƒŅ‚, Đēай ŅƒĐąĐ°Ņ‡Ņ‹Ņ†ŅŒ ĐŋҀҋĐēĐģад</string>
<string name="revanced_sb_general_skiptoast_sum_off">ĐĸĐžŅŅ‚ ĐŊĐĩ ĐŋаĐēаСваĐĩŅ†Ņ†Đ°. ĐĐ°Ņ†Ņ–ŅĐŊҖ҆Đĩ Ņ‚ŅƒŅ‚, Đēай ŅƒĐąĐ°Ņ‡Ņ‹Ņ†ŅŒ ĐŋҀҋĐēĐģад</string>
<string name="revanced_sb_general_time_without">ПаĐēĐ°ĐˇĐ°Ņ†ŅŒ ĐŋŅ€Đ°Ņ†ŅĐŗĐģĐ°ŅŅ†ŅŒ Đ˛Ņ–Đ´ŅĐ° ĐąĐĩС ҁĐĩĐŗĐŧĐĩĐŊŅ‚Đ°Ņž</string>
<string name="revanced_sb_general_time_without_sum_on">ĐŸŅ€Đ°Ņ†ŅĐŗĐģĐ°ŅŅ†ŅŒ Đ˛Ņ–Đ´ŅĐ° ĐŧŅ–ĐŊ҃ҁ ҃ҁĐĩ ҁĐĩĐŗĐŧĐĩĐŊ҂ҋ, ĐŋаĐēаСаĐŊа Ņž Đ´ŅƒĐļĐēĐ°Ņ… ĐŋĐžĐąĐ°Ņ‡ С ĐŋĐžŅžĐŊаК ĐŋŅ€Đ°Ņ†ŅĐŗĐģĐ°ŅŅ†ŅŽ Đ˛Ņ–Đ´ŅĐ°</string>
<string name="revanced_sb_general_time_without_sum_off">ПаĐēаСаĐŊа ĐŋĐžŅžĐŊĐ°Ņ Đ´Đ°ŅžĐļŅ‹ĐŊŅ Đ˛Ņ–Đ´ŅĐ°</string>
<string name="revanced_sb_create_segment_category">ĐĄŅ‚Đ˛Đ°Ņ€ŅĐŊĐŊĐĩ ĐŊĐžĐ˛Ņ‹Ņ… ҁĐĩĐŗĐŧĐĩĐŊŅ‚Đ°Ņž</string>
<string name="revanced_sb_enable_create_segment">ПаĐēĐ°ĐˇĐ°Ņ†ŅŒ ĐēĐŊĐžĐŋĐē҃ ŅŅ‚Đ˛Đ°Ņ€ŅĐŊĐŊŅ ĐŊĐžĐ˛Đ°ĐŗĐ° ҁĐĩĐŗĐŧĐĩĐŊŅ‚Đ°</string>
<string name="revanced_sb_enable_create_segment">ПаĐēĐ°ĐˇĐ˛Đ°Ņ†ŅŒ ĐēĐŊĐžĐŋĐē҃ ÂĢĐĄŅ‚Đ˛Đ°Ņ€Ņ‹Ņ†ŅŒ ĐŊĐžĐ˛Ņ‹ ҁĐĩĐŗĐŧĐĩĐŊŅ‚Âģ</string>
<string name="revanced_sb_enable_create_segment_sum_on">ПаĐēаСаĐŊа ĐēĐŊĐžĐŋĐēа \"ĐĄŅ‚Đ˛Đ°Ņ€Ņ‹Ņ†ŅŒ ĐŊĐžĐ˛Ņ‹ ҁĐĩĐŗĐŧĐĩĐŊŅ‚\"</string>
<string name="revanced_sb_enable_create_segment_sum_off">КĐŊĐžĐŋĐēа \"ĐĄŅ‚Đ˛Đ°Ņ€Ņ‹Ņ†ŅŒ ĐŊĐžĐ˛Ņ‹ ҁĐĩĐŗĐŧĐĩĐŊŅ‚\" ĐŊĐĩ ĐŋаĐēаСваĐĩŅ†Ņ†Đ°</string>
<string name="revanced_sb_general_adjusting">ĐĐ´Ņ€ŅĐŗŅƒĐģŅŽĐšŅ†Đĩ ĐŊĐžĐ˛Ņ‹ ĐēŅ€ĐžĐē ҁĐĩĐŗĐŧĐĩĐŊŅ‚Đ°</string>
@@ -1017,7 +1033,7 @@ Second \"item\" text"</string>
<string name="revanced_sb_skipped_multiple_segments">ĐŸŅ€Đ°ĐŋŅƒŅˆŅ‡Đ°ĐŊŅ‹ ĐŊĐĩĐēаĐģҌĐēŅ– ҁĐĩĐŗĐŧĐĩĐŊŅ‚Đ°Ņž</string>
<string name="revanced_sb_skip_automatically">ĐŸŅ€Đ°ĐŋŅƒŅŅ†Ņ–Ņ†ŅŒ Đ°ŅžŅ‚Đ°ĐŧĐ°Ņ‚Ņ‹Ņ‡ĐŊа</string>
<string name="revanced_sb_skip_automatically_once">ĐŸŅ€Đ°ĐŋŅƒŅŅ†Ņ–Ņ†ŅŒ Đ°ŅžŅ‚Đ°ĐŧĐ°Ņ‚Ņ‹Ņ‡ĐŊа Đ°Đ´ĐˇŅ–ĐŊ Ņ€Đ°Đˇ</string>
<string name="revanced_sb_skip_showbutton">ПаĐēĐ°ĐˇĐ°Ņ†ŅŒ ĐēĐŊĐžĐŋĐē҃ ĐŋŅ€ĐžĐŋ҃ҁĐē҃</string>
<string name="revanced_sb_skip_showbutton">ПаĐēĐ°ĐˇĐ˛Đ°Ņ†ŅŒ ĐēĐŊĐžĐŋĐē҃ ÂĢĐŸŅ€Đ°ĐŋŅƒŅŅ†Ņ–Ņ†ŅŒÂģ</string>
<string name="revanced_sb_skip_seekbaronly">ПаĐēĐ°ĐˇĐ°Ņ†ŅŒ ĐŊа ĐŋаĐŊŅĐģŅ– ĐŋĐžŅˆŅƒĐē҃</string>
<string name="revanced_sb_skip_ignore">АдĐēĐģŅŽŅ‡Ņ‹Ņ†ŅŒ</string>
<string name="revanced_sb_submit_failed_invalid">НĐĩĐŧĐ°ĐŗŅ‡Ņ‹Đŧа адĐŋŅ€Đ°Đ˛Ņ–Ņ†ŅŒ ҁĐĩĐŗĐŧĐĩĐŊŅ‚: %s</string>
@@ -1043,9 +1059,9 @@ Second \"item\" text"</string>
<string name="revanced_sb_new_segment_disabled_category">ĐšĐ°Ņ‚ŅĐŗĐžŅ€Ņ‹Ņ адĐēĐģŅŽŅ‡Đ°ĐŊа Ņž ĐŊаĐģĐ°Đ´Đ°Ņ…. ĐŖĐēĐģŅŽŅ‡Ņ‹Ņ†Đĩ ĐēĐ°Ņ‚ŅĐŗĐžŅ€Ņ‹ŅŽ Đ´ĐģŅ адĐŋŅ€Đ°ŅžĐēŅ–.</string>
<string name="revanced_sb_new_segment_title">ĐĐžĐ˛Ņ‹ ҁĐĩĐŗĐŧĐĩĐŊŅ‚ SponsorBlock</string>
<string name="revanced_sb_new_segment_mark_time_as_question">ĐŖŅŅ‚Đ°ĐģŅĐ˛Đ°Ņ†ŅŒ %s ҃ ŅĐēĐ°ŅŅ†Ņ– ĐŋĐ°Ņ‡Đ°Ņ‚Đē҃ айО ĐēаĐŊŅ†Đ° ĐŊĐžĐ˛Đ°ĐŗĐ° ҁĐĩĐŗĐŧĐĩĐŊŅ‚Đ°?</string>
<string name="revanced_sb_new_segment_mark_start">ĐŋĐ°Ņ‡Đ°Ņ†ŅŒ</string>
<string name="revanced_sb_new_segment_mark_end">ĐēаĐŊĐĩ҆</string>
<string name="revanced_sb_new_segment_now">ĐˇĐ°Ņ€Đ°Đˇ</string>
<string name="revanced_sb_new_segment_mark_start">ĐŸĐ°Ņ‡Đ°Ņ‚Đ°Đē</string>
<string name="revanced_sb_new_segment_mark_end">КаĐŊĐĩ҆</string>
<string name="revanced_sb_new_segment_now">ĐĻŅĐŋĐĩŅ€</string>
<string name="revanced_sb_new_segment_time_start">Đ§Đ°Ņ ĐŋĐ°Ņ‡Đ°Ņ‚Đē҃ ҁĐĩĐŗĐŧĐĩĐŊŅ‚Đ°</string>
<string name="revanced_sb_new_segment_time_end">Đ§Đ°Ņ СаĐēаĐŊŅ‡ŅĐŊĐŊŅ ҁĐĩĐŗĐŧĐĩĐŊŅ‚Đ°</string>
<string name="revanced_sb_new_segment_confirm_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>
@@ -1289,8 +1305,8 @@ Second \"item\" text"</string>
</patch>
<patch id="misc.announcements.announcementsPatch">
<string name="revanced_announcements_title">ПаĐēĐ°ĐˇĐ°Ņ†ŅŒ ай\"ŅĐ˛Ņ‹ ReVanced</string>
<string name="revanced_announcements_summary_on">Ай\"ŅĐ˛Ņ‹ ĐŋаĐēĐ°ĐˇĐ˛Đ°ŅŽŅ†Ņ†Đ° ĐŋҀҋ СаĐŋ҃ҁĐē҃</string>
<string name="revanced_announcements_summary_off">Ай\"ŅĐ˛Ņ‹ ĐŊĐĩ ĐŋаĐēĐ°ĐˇĐ˛Đ°ŅŽŅ†Ņ†Đ° ĐŋҀҋ СаĐŋ҃ҁĐē҃</string>
<string name="revanced_announcements_summary_on">АĐŊĐžĐŊҁҋ ĐŋҀҋ СаĐŋ҃ҁĐē҃ ĐŋаĐēаСаĐŊŅ‹</string>
<string name="revanced_announcements_summary_off">АĐŊĐžĐŊҁҋ ĐŋҀҋ СаĐŋ҃ҁĐē҃ ĐŊĐĩ ĐŋаĐēаСаĐŊŅ‹</string>
<string name="revanced_announcements_enabled_summary">ПаĐēĐ°ĐˇĐ˛Đ°Ņ†ŅŒ ай\"ŅĐ˛Ņ‹ ĐŋҀҋ СаĐŋ҃ҁĐē҃</string>
<string name="revanced_announcements_connection_failed">НĐĩ ŅžĐ´Đ°ĐģĐžŅŅ ĐŋадĐēĐģŅŽŅ‡Ņ‹Ņ†Ņ†Đ° да ĐŋĐ°ŅŅ‚Đ°ŅžŅˆŅ‡Ņ‹Đēа ай\"ŅŅž</string>
<string name="revanced_announcements_dialog_dismiss">Ņ€Đ°ŅŅĐģĐ°ĐąŅ–Ņ†Ņ†Đ°</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

@@ -161,16 +161,13 @@ Second \"item\" text"</string>
<string name="revanced_debug_stacktrace_summary_on">ДĐŊĐĩвĐŊиĐēŅŠŅ‚ Са ĐžŅ‚ŅŅ‚Ņ€Đ°ĐŊŅĐ˛Đ°ĐŊĐĩ ĐŊа ĐŗŅ€Đĩ҈Đēи ŅŅŠĐ´ŅŠŅ€Đļа ҁĐģĐĩди ĐžŅ‚ ҁ҂ĐĩĐēа</string>
<string name="revanced_debug_stacktrace_summary_off">ДĐŊĐĩвĐŊиĐēŅŠŅ‚ Са ĐžŅ‚ŅŅ‚Ņ€Đ°ĐŊŅĐ˛Đ°ĐŊĐĩ ĐŊа ĐŗŅ€Đĩ҈Đēи ĐŊĐĩ ŅŅŠĐ´ŅŠŅ€Đļа ҁĐģĐĩди ĐžŅ‚ ҁ҂ĐĩĐēа</string>
<string name="revanced_debug_toast_on_error_title">ПоĐēаĐļи ŅĐ¸ŅŅ‚ĐĩĐŧĐŊĐž ŅŅŠĐžĐąŅ‰ĐĩĐŊиĐĩ ĐŋŅ€Đ¸ ReVanced ĐŗŅ€Đĩ҈Đēа</string>
<string name="revanced_debug_toast_on_error_summary_on">ĐĄĐ¸ŅŅ‚ĐĩĐŧĐŊĐž ŅŅŠĐžĐąŅ‰ĐĩĐŊиĐĩ ҉Đĩ ĐąŅŠĐ´Đĩ ĐŋĐžĐēаСаĐŊĐž, аĐēĐž ҁĐĩ ĐŋĐžŅĐ˛Đ¸ ĐŗŅ€Đĩ҈Đēа</string>
<string name="revanced_debug_toast_on_error_summary_off">ĐĄĐ¸ŅŅ‚ĐĩĐŧĐŊĐž ŅŅŠĐžĐąŅ‰ĐĩĐŊиĐĩ ĐŊŅĐŧа да ĐąŅŠĐ´Đĩ ĐŋĐžĐēаСаĐŊĐž, аĐēĐž ҁĐĩ ĐŋĐžŅĐ˛Đ¸ ĐŗŅ€Đĩ҈Đēа</string>
<string name="revanced_debug_toast_on_error_summary_on">ПоĐēаСва ҁĐĩ toast, аĐēĐž Đ˛ŅŠĐˇĐŊиĐēĐŊĐĩ ĐŗŅ€Đĩ҈Đēа</string>
<string name="revanced_debug_toast_on_error_summary_off">НĐĩ ҁĐĩ ĐŋĐžĐēаСва toast, аĐēĐž Đ˛ŅŠĐˇĐŊиĐēĐŊĐĩ ĐŗŅ€Đĩ҈Đēа</string>
<string name="revanced_debug_toast_on_error_user_dialog_message">"ИСĐēĐģŅŽŅ‡Đ˛Đ°ĐŊĐĩŅ‚Đž ĐŊа Đ¸ĐˇŅĐēĐ°Ņ‡Đ°Ņ‰Đ¸ ŅŅŠĐžĐąŅ‰ĐĩĐŊĐ¸Ņ Са ĐŗŅ€Đĩ҈Đēи ĐēŅ€Đ¸Đĩ Đ˛ŅĐ¸Ņ‡Đēи иСвĐĩŅŅ‚Đ¸Ņ Са ĐŗŅ€Đĩ҈Đēи ĐŊа ReVanced.
ĐŅĐŧа да ĐąŅŠĐ´ĐĩŅ‚Đĩ ŅƒĐ˛ĐĩĐ´ĐžĐŧĐĩĐŊи Са ĐŊĐĩĐžŅ‡Đ°ĐēваĐŊи ŅŅŠĐąĐ¸Ņ‚Đ¸Ņ."</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>
@@ -193,22 +190,22 @@ Second \"item\" text"</string>
<string name="revanced_hide_horizontal_shelves_summary_off">ĐĨĐžŅ€Đ¸ĐˇĐžĐŊŅ‚Đ°ĐģĐŊи ҁĐĩĐēŅ†Đ¸Đ¸ ҁĐĩ ĐŋĐžĐēĐ°ĐˇĐ˛Đ°Ņ‚</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">ĐĄĐēŅ€Đ¸Đ˛Đ°ĐŊĐĩ ĐŊа ĐąŅƒŅ‚ĐžĐŊа \'ĐŸŅ€Đ¸ŅŅŠĐĩдиĐŊи ҁĐĩ\'</string>
<string name="revanced_hide_join_membership_button_title">ĐĄĐēŅ€Đ¸Đ˛Đ°ĐŊĐĩ ĐŊа ĐąŅƒŅ‚ĐžĐŊа \"ĐŸŅ€Đ¸ŅŅŠĐĩдиĐŊŅĐ˛Đ°ĐŊĐĩ\"</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>
<string name="revanced_hide_notify_me_button_summary_on">Đ‘ŅƒŅ‚ĐžĐŊа \"ĐŖĐ˛ĐĩĐ´ĐžĐŧи ĐŧĐĩ\" Đĩ ҁĐēŅ€Đ¸Ņ‚</string>
<string name="revanced_hide_notify_me_button_summary_off">Đ‘ŅƒŅ‚ĐžĐŊа \"ĐŖĐ˛ĐĩĐ´ĐžĐŧи ĐŧĐĩ\" ҁĐĩ ĐŋĐžĐēаСва</string>
<!-- 'People also watch' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_search_result_recommendations_title">ĐĄĐēŅ€Đ¸Đ˛Đ°ĐŊĐĩ ĐŊа ĐŋŅ€ĐĩĐŋĐžŅ€ŅŠĐēĐ¸Ņ‚Đĩ \'Đ”Ņ€ŅƒĐŗĐ¸ Ņ…Đ°Ņ€ĐĩŅĐ˛Đ°Ņ‚ ŅŅŠŅ‰Đž\'</string>
<string name="revanced_hide_search_result_recommendations_summary_on">ĐŸŅ€ĐĩĐŋĐžŅ€ŅŠĐēĐ¸Ņ‚Đĩ ŅĐ° ҁĐēŅ€Đ¸Ņ‚Đ¸</string>
<string name="revanced_hide_search_result_recommendations_summary_off">ĐŸŅ€ĐĩĐŋĐžŅ€ŅŠĐēĐ¸Ņ‚Đĩ ҁĐĩ ĐŋĐžĐēĐ°ĐˇĐ˛Đ°Ņ‚</string>
<!-- 'People also watched' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_search_result_recommendations_title">ĐĄĐēŅ€Đ¸Đ˛Đ°ĐŊĐĩ ĐŊа ĐĩŅ‚Đ¸ĐēĐĩŅ‚Đ° \"ĐĨĐžŅ€Đ°Ņ‚Đ° ŅŅŠŅ‰Đž ĐŗĐģĐĩĐ´Đ°Ņ…Đ°\"</string>
<string name="revanced_hide_search_result_recommendations_summary_on">Đ•Ņ‚Đ¸ĐēĐĩŅ‚ŅŠŅ‚ Đĩ ҁĐēŅ€Đ¸Ņ‚</string>
<string name="revanced_hide_search_result_recommendations_summary_off">Đ•Ņ‚Đ¸ĐēĐĩŅ‚ŅŠŅ‚ Đĩ ĐŋĐžĐēаСаĐŊ</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">ĐĄĐēŅ€Đ¸Đ˛Đ°ĐŊĐĩ ĐŊа ĐąŅƒŅ‚ĐžĐŊа \"ПоĐēаĐļи ĐžŅ‰Đĩ\"</string>
@@ -224,8 +221,8 @@ Second \"item\" text"</string>
<string name="revanced_hide_chips_shelf_summary_on">Đ Đ°Ņ„Ņ‚ŅŠŅ‚ \"Chip\" Đĩ ҁĐēŅ€Đ¸Ņ‚</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>
@@ -241,7 +238,7 @@ Second \"item\" text"</string>
<string name="revanced_hide_community_guidelines_title">ĐĄĐēŅ€Đ¸Đ˛Đ°ĐŊĐĩ ĐŊа ĐŊĐ°ŅĐžĐēĐ¸Ņ‚Đĩ ĐŊа ĐžĐąŅ‰ĐŊĐžŅŅ‚Ņ‚Đ°</string>
<string name="revanced_hide_community_guidelines_summary_on">ĐĐ°ŅĐžĐēĐ¸Ņ‚Đĩ ĐŊа ĐžĐąŅ‰ĐŊĐžŅŅ‚Ņ‚Đ° ŅĐ° ҁĐēŅ€Đ¸Ņ‚Đ¸</string>
<string name="revanced_hide_community_guidelines_summary_off">ĐĄĐēŅ€Đ¸Đ˛Đ°ĐŊĐĩ ĐŊа ĐŊĐ°ŅĐžĐēĐ¸Ņ‚Đĩ Са ĐžĐąŅ‰ĐŊĐžŅŅ‚Ņ‚Đ° ĐŊа айОĐŊĐ°Ņ‚Đ¸Ņ‚Đĩ</string>
<string name="revanced_hide_subscribers_community_guidelines_title">ĐĄĐēŅ€Đ¸Đ˛Đ°ĐŊĐĩ ĐŊа ĐŊĐ°ŅĐžĐēĐ¸Ņ‚Đĩ Са ĐžĐąŅ‰ĐŊĐžŅŅ‚Ņ‚Đ° ĐŊа айОĐŊĐ°Ņ‚Đ¸Ņ‚Đĩ</string>
<string name="revanced_hide_subscribers_community_guidelines_title">ĐĄĐēŅ€Đ¸Đ˛Đ°ĐŊĐĩ ĐŊа ҃ĐēаСаĐŊĐ¸ŅŅ‚Đ° Са айОĐŊĐ°Ņ‚ĐžŅ€Đ¸</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_on">ĐĐ°ŅĐžĐēĐ¸Ņ‚Đĩ Са ĐžĐąŅ‰ĐŊĐžŅŅ‚Ņ‚Đ° ŅĐ° ҁĐēŅ€Đ¸Ņ‚Đ¸</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_off">ĐĐ°ŅĐžĐēĐ¸Ņ‚Đĩ Са ĐžĐąŅ‰ĐŊĐžŅŅ‚Ņ‚Đ° ŅĐ° ĐŋĐžĐēаСаĐŊи</string>
<string name="revanced_hide_channel_member_shelf_title">ĐĄĐēŅ€Đ¸Đ˛Đ°ĐŊĐĩ ĐŊа ҁĐĩĐēŅ†Đ¸ŅŅ‚Đ° ҁ ҇ĐģĐĩĐŊŅƒĐ˛Đ°Ņ‰Đ¸</string>
@@ -280,63 +277,63 @@ 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">ĐĄĐĩĐēŅ†Đ¸Đ¸Ņ‚Đĩ \"ĐŸŅ€ĐĩĐŋĐžŅ€ŅŠŅ‡Đ°ĐŊи ĐŧĐĩŅŅ‚Đ°\", \"Đ˜ĐŗŅ€Đ¸\", \"ĐœŅƒĐˇĐ¸Đēа\" и \"ĐĄĐŋĐžĐŧĐĩĐŊĐ°Ņ‚Đ¸ Ņ…ĐžŅ€Đ°\" ŅĐ° ҁĐēŅ€Đ¸Ņ‚Đ¸</string>
<string name="revanced_hide_attributes_section_summary_off">ĐĄĐĩĐēŅ†Đ¸Đ¸Ņ‚Đĩ \"ĐŸŅ€ĐĩĐŋĐžŅ€ŅŠŅ‡Đ°ĐŊи ĐŧĐĩŅŅ‚Đ°\", \"Đ˜ĐŗŅ€Đ¸\", \"ĐœŅƒĐˇĐ¸Đēа\" и \"ĐĄĐŋĐžĐŧĐĩĐŊĐ°Ņ‚Đ¸ Ņ…ĐžŅ€Đ°\" ŅĐ° ĐŋĐžĐēаСаĐŊи</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">ĐĄĐēŅ€Đ¸Đ˛Đ°ĐŊĐĩ ҁĐĩĐēŅ†Đ¸ŅŅ‚Đ° â€žĐ Đ°ĐˇĐŗĐģĐĩĐ´Đ°ĐšŅ‚Đĩ ĐŋОдĐēĐ°ŅŅ‚Đ°â€œ</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_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">ĐĄĐēŅ€Đ¸Đ˛Đ°ĐŊĐĩ ĐŊа \"Đ Đ°ĐˇĐŗĐģĐĩĐ´Đ°ĐšŅ‚Đĩ ĐŋОдĐēĐ°ŅŅ‚Đ°\"</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>
<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>
<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_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_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">Đ‘ŅƒŅ‚ĐžĐŊ Са ŅŅŠĐˇĐ´Đ°Đ˛Đ°ĐŊĐĩ ĐŊа Shorts</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Đ‘ŅƒŅ‚ĐžĐŊ Са ŅŅŠĐˇĐ´Đ°Đ˛Đ°ĐŊĐĩ ĐŊа Shorts Đĩ ҁĐēŅ€Đ¸Ņ‚</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Đ‘ŅƒŅ‚ĐžĐŊ Са ŅŅŠĐˇĐ´Đ°Đ˛Đ°ĐŊĐĩ ĐŊа Shorts ҁĐĩ ĐŋĐžĐēаСва</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">ĐĄĐēŅ€Đ¸Đ˛Đ°ĐŊĐĩ ĐŊа ĐąŅƒŅ‚ĐžĐŊĐ¸Ņ‚Đĩ Са ĐĩĐŧОдĐļи и Đ˛Ņ€ĐĩĐŧĐĩви ĐŋĐĩŅ‡Đ°Ņ‚</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>
<string name="revanced_hide_comments_thanks_button_title">ĐĄĐēŅ€Đ¸Đš ĐąŅƒŅ‚ĐžĐŊа Са Ņ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐĩ</string>
<string name="revanced_hide_comments_thanks_button_summary_on">Đ‘ŅƒŅ‚ĐžĐŊа Са ĐąĐģĐ°ĐŗĐžĐ´Đ°Ņ€ĐŊĐžŅŅ‚ Đĩ ҁĐēŅ€Đ¸Ņ‚</string>
<string name="revanced_hide_comments_thanks_button_summary_off">Đ‘ŅƒŅ‚ĐžĐŊа Са ĐąĐģĐ°ĐŗĐžĐ´Đ°Ņ€ĐŊĐžŅŅ‚ ҁĐĩ ĐŋĐžĐēаСва</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Đ‘ŅƒŅ‚ĐžĐŊи в ĐģĐĩĐŊŅ‚Đ°Ņ‚Đ° ĐŊа ĐŋŅ€ĐžĐŗŅ€ĐĩŅĐ° и ĐĩĐŧĐžŅ‚Đ¸ĐēĐžĐŊи</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>
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<string name="revanced_hide_doodles_title">YouTube Doodles</string>
<string name="revanced_hide_doodles_summary_on">Doodles в ĐģĐĩĐŊŅ‚Đ°Ņ‚Đ° Са Ņ‚ŅŠŅ€ŅĐĩĐŊĐĩ ŅĐ° ҁĐēŅ€Đ¸Ņ‚Đ¸</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>
@@ -417,12 +414,12 @@ Second \"item\" text"</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_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_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>
@@ -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">
@@ -462,8 +459,8 @@ Second \"item\" text"</string>
<string name="revanced_external_downloader_screen_title">Đ’ŅŠĐŊ҈ĐŊи Đ¸ĐˇŅ‚ĐĩĐŗĐģŅĐŊĐ¸Ņ</string>
<string name="revanced_external_downloader_screen_summary">ĐĐ°ŅŅ‚Ņ€ĐžĐšĐēи Са иСĐŋĐžĐģСваĐŊĐĩ ĐŊа Đ˛ŅŠĐŊ҈ĐŊĐž ĐŋŅ€Đ¸ĐģĐžĐļĐĩĐŊиĐĩ Са Đ¸ĐˇŅ‚ĐĩĐŗĐģŅĐŊĐĩ</string>
<string name="revanced_external_downloader_title">ПоĐēаСваĐŊĐĩ ĐŊа ĐąŅƒŅ‚ĐžĐŊа Са Đ¸ĐˇŅ‚ĐĩĐŗĐģŅĐŊĐĩ ҇ҀĐĩС Đ˛ŅŠĐŊ҈ĐŊĐž ĐŋŅ€Đ¸ĐģĐžĐļĐĩĐŊиĐĩ</string>
<string name="revanced_external_downloader_summary_on">Đ‘ŅƒŅ‚ĐžĐŊŅŠŅ‚ Са Đ¸ĐˇŅ‚ĐĩĐŗĐģŅĐŊĐĩ Đĩ ĐŋĐžĐēаСаĐŊ в ĐŋĐģĐĩĐšŅŠŅ€Đ°</string>
<string name="revanced_external_downloader_summary_off">Đ‘ŅƒŅ‚ĐžĐŊŅŠŅ‚ Са Đ¸ĐˇŅ‚ĐĩĐŗĐģŅĐŊĐĩ ĐŊĐĩ Đĩ ĐŋĐžĐēаСаĐŊ в ĐŋĐģĐĩĐšŅŠŅ€Đ°</string>
<string name="revanced_external_downloader_summary_on">Đ‘ŅƒŅ‚ĐžĐŊŅŠŅ‚ Са Đ¸ĐˇŅ‚ĐĩĐŗĐģŅĐŊĐĩ в ĐŋĐģĐĩĐšŅŠŅ€Đ° Đĩ ĐŋĐžĐēаСаĐŊ</string>
<string name="revanced_external_downloader_summary_off">Đ‘ŅƒŅ‚ĐžĐŊŅŠŅ‚ Са Đ¸ĐˇŅ‚ĐĩĐŗĐģŅĐŊĐĩ в ĐŋĐģĐĩĐšŅŠŅ€Đ° ĐŊĐĩ Đĩ ĐŋĐžĐēаСаĐŊ</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">ЗаĐŧĐĩŅŅ‚Đ˛Đ°ĐŊĐĩ ĐŊа ĐąŅƒŅ‚ĐžĐŊа Download</string>
<string name="revanced_external_downloader_action_button_summary_on">Đ‘ŅƒŅ‚ĐžĐŊŅŠŅ‚ Са Đ¸ĐˇŅ‚ĐĩĐŗĐģŅĐŊĐĩ ĐžŅ‚Đ˛Đ°Ņ€Ņ Đ¸ĐˇĐąŅ€Đ°ĐŊĐžŅ‚Đž ĐžŅ‚ Đ’Đ°Ņ Đ˛ŅŠĐŊ҈ĐŊĐž ĐŋŅ€Đ¸ĐģĐžĐļĐĩĐŊиĐĩ Са Đ¸ĐˇŅ‚ĐĩĐŗĐģŅĐŊĐĩ</string>
@@ -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>
@@ -831,7 +847,7 @@ Second \"item\" text"</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">НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸ŅŅ‚Đ° Đ˛Ņ€ĐĩĐŧĐĩĐŊĐŊĐž ĐŊĐĩ ŅĐ° ĐŊаĐģĐ¸Ņ‡ĐŊи (API timed out)</string>
<string name="revanced_ryd_failure_connection_status_code">НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸ŅŅ‚Đ° ĐŊĐĩ ŅĐ° ĐŊаĐģĐ¸Ņ‡ĐŊи (status %d)</string>
<string name="revanced_ryd_failure_client_rate_limit_requested">НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸ŅŅ‚Đ° ĐŊĐĩ ŅĐ° Đ´ĐžŅŅ‚ŅŠĐŋĐŊи (Đ´ĐžŅŅ‚Đ¸ĐŗĐŊĐ°Ņ‚ ĐģиĐŧĐ¸Ņ‚ ĐŊа API)</string>
<string name="revanced_ryd_failure_client_rate_limit_requested">НĐĩ ŅĐ° ĐŊаĐģĐ¸Ņ‡ĐŊи ĐŊĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸Ņ (ĐžĐŗŅ€Đ°ĐŊĐ¸Ņ‡ĐĩĐŊиĐĩ ĐŊа ĐēĐģиĐĩĐŊ҂ҁĐēĐ¸Ņ API)</string>
<string name="revanced_ryd_failure_generic">НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸ŅŅ‚Đ° ĐŊĐĩ ŅĐ° ĐŊаĐģĐ¸Ņ‡ĐŊи (%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">ĐŸŅ€ĐĩĐˇĐ°Ņ€Đĩди видĐĩĐžŅ‚Đž Са ĐŗĐģĐ°ŅŅƒĐ˛Đ°ĐŊĐĩ ҁ ReturnYouTubeDislike</string>
@@ -840,14 +856,14 @@ Second \"item\" text"</string>
<string name="revanced_ryd_enable_summary_on">НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸ŅŅ‚Đ° ҁĐĩ ĐŋĐžĐēĐ°ĐˇĐ˛Đ°Ņ‚</string>
<string name="revanced_ryd_enable_summary_off">НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸ŅŅ‚Đ° ĐŊĐĩ ҁĐĩ ĐŋĐžĐēĐ°ĐˇĐ˛Đ°Ņ‚</string>
<string name="revanced_ryd_shorts_title">ПоĐē. ĐŊĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸Ņ в ĐēŅ€Đ°Ņ‚ĐēĐ¸Ņ‚Đĩ ĐēĐģиĐŋОвĐĩ</string>
<string name="revanced_ryd_shorts_summary_on">НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸ŅŅ‚Đ° ҁĐĩ ĐŋĐžĐēĐ°ĐˇĐ˛Đ°Ņ‚ в ĐēŅ€Đ°Ņ‚ĐēĐ¸Ņ‚Đĩ ĐēĐģиĐŋОвĐĩ</string>
<string name="revanced_ryd_shorts_summary_on_disclaimer">"НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸ŅŅ‚Đ° ҁĐĩ ĐŋĐžĐēĐ°ĐˇĐ˛Đ°Ņ‚ ĐŊа ŅˆĐžŅ€Ņ‚Đ¸
<string name="revanced_ryd_shorts_summary_on">НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸ŅŅ‚Đ° ĐŊа Shorts ŅĐ° ĐŋĐžĐēаСаĐŊи</string>
<string name="revanced_ryd_shorts_summary_on_disclaimer">"НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸ŅŅ‚Đ° ĐŊа Shorts ŅĐ° ĐŋĐžĐēаСаĐŊи
ĐžĐŗŅ€Đ°ĐŊĐ¸Ņ‡ĐĩĐŊиĐĩ: НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸ŅŅ‚Đ° ĐŧĐžĐļĐĩ да ĐŊĐĩ ҁĐĩ ĐŋĐžŅĐ˛ŅŅ‚ в Ņ€ĐĩĐļиĐŧ иĐŊĐēĐžĐŗĐŊĐ¸Ņ‚Đž"</string>
<string name="revanced_ryd_shorts_summary_off">НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸ŅŅ‚Đ° ŅĐ° ҁĐēŅ€Đ¸Ņ‚Đ¸ в ĐēŅ€Đ°Ņ‚ĐēĐ¸Ņ‚Đĩ ĐēĐģиĐŋОвĐĩ</string>
ĐžĐŗŅ€Đ°ĐŊĐ¸Ņ‡ĐĩĐŊиĐĩ: НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸ŅŅ‚Đ° ĐŧĐžĐļĐĩ да ĐŊĐĩ ҁĐĩ ĐŋĐžĐēĐ°ĐˇĐ˛Đ°Ņ‚ в Ņ€ĐĩĐļиĐŧ иĐŊĐēĐžĐŗĐŊĐ¸Ņ‚Đž"</string>
<string name="revanced_ryd_shorts_summary_off">НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸ŅŅ‚Đ° ĐŊа Shorts ĐŊĐĩ ŅĐ° ĐŋĐžĐēаСаĐŊи</string>
<string name="revanced_ryd_dislike_percentage_title">НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸Ņ ĐēĐ°Ņ‚Đž ĐŋŅ€ĐžŅ†ĐĩĐŊŅ‚</string>
<string name="revanced_ryd_dislike_percentage_summary_on">НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸ŅŅ‚Đ° ҁĐĩ ĐŋĐžĐēĐ°ĐˇĐ˛Đ°Ņ‚ ĐēĐ°Ņ‚Đž ĐŋŅ€ĐžŅ†ĐĩĐŊŅ‚</string>
<string name="revanced_ryd_dislike_percentage_summary_off">НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸ŅŅ‚Đ° ҁĐĩ ĐŋĐžĐēĐ°ĐˇĐ˛Đ°Ņ‚ ĐēĐ°Ņ‚Đž Ņ‡Đ¸ŅĐģĐž</string>
<string name="revanced_ryd_dislike_percentage_summary_on">НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸ŅŅ‚Đ° ŅĐ° ĐŋĐžĐēаСаĐŊи ĐēĐ°Ņ‚Đž ĐŋŅ€ĐžŅ†ĐĩĐŊŅ‚</string>
<string name="revanced_ryd_dislike_percentage_summary_off">НĐĩŅ…Đ°Ņ€ĐĩŅĐ˛Đ°ĐŊĐ¸ŅŅ‚Đ° ŅĐ° ĐŋĐžĐēаСаĐŊи ĐēĐ°Ņ‚Đž Ņ‡Đ¸ŅĐģĐž</string>
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button' -->
<string name="revanced_ryd_compact_layout_title">КоĐŧĐŋаĐēŅ‚ĐĩĐŊ Like ĐąŅƒŅ‚ĐžĐŊ</string>
<string name="revanced_ryd_compact_layout_summary_on">ВĐēĐģŅŽŅ‡ĐĩĐŊ ĐēĐžĐŧĐŋаĐēŅ‚ĐĩĐŊ ĐąŅƒŅ‚ĐžĐŊ \"ĐĨĐ°Ņ€ĐĩŅĐ˛Đ° Đŧи\"</string>
@@ -909,20 +925,20 @@ Second \"item\" text"</string>
<string name="revanced_sb_square_layout_sum_on">Đ‘ŅƒŅ‚ĐžĐŊĐ¸Ņ‚Đĩ и ĐēĐžĐŊŅ‚Ņ€ĐžĐģĐ¸Ņ‚Đĩ ŅĐ° ĐēĐ˛Đ°Đ´Ņ€Đ°Ņ‚ĐŊи</string>
<string name="revanced_sb_square_layout_sum_off">Đ‘ŅƒŅ‚ĐžĐŊĐ¸Ņ‚Đĩ и ĐēĐžĐŊŅ‚Ņ€ĐžĐģĐ¸Ņ‚Đĩ ŅĐ° СаОйĐģĐĩĐŊи</string>
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title' -->
<string name="revanced_sb_enable_compact_skip_button">КоĐŧĐŋаĐēŅ‚ĐĩĐŊ ĐąŅƒŅ‚ĐžĐŊ Са ĐŋŅ€ĐžĐŋ҃ҁĐēаĐŊĐĩ</string>
<string name="revanced_sb_enable_compact_skip_button">ИСĐŋĐžĐģСваĐŊĐĩ ĐŊа ĐēĐžĐŧĐŋаĐēŅ‚ĐĩĐŊ ĐąŅƒŅ‚ĐžĐŊ \"ĐŸŅ€ĐžĐŋ҃ҁĐēаĐŊĐĩ\"</string>
<string name="revanced_sb_enable_compact_skip_button_sum_on">МиĐŊ. ŅˆĐ¸Ņ€Đ¸ĐŊа ĐŊа ĐąŅƒŅ‚ĐžĐŊа Са ĐŋŅ€ĐžĐŋ҃ҁĐēаĐŊĐĩ</string>
<string name="revanced_sb_enable_compact_skip_button_sum_off">Най-Đ´ĐžĐąŅŠŅ€ Đ¸ĐˇĐŗĐģĐĩĐ´ ĐŊа ĐąŅƒŅ‚ĐžĐŊа Са ĐŋŅ€ĐžĐŋ҃ҁĐēаĐŊĐĩ</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button">ĐĐ˛Ņ‚. ҁĐēŅ€Đ¸Đ˛Đ°ĐŊĐĩ ĐŊа ĐąŅƒŅ‚ĐžĐŊа Са ĐŋŅ€ĐžĐŋ҃ҁĐēаĐŊĐĩ</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button">ĐĐ˛Ņ‚ĐžĐŧĐ°Ņ‚Đ¸Ņ‡ĐŊĐž ҁĐēŅ€Đ¸Đ˛Đ°ĐŊĐĩ ĐŊа ĐąŅƒŅ‚ĐžĐŊа \"ĐŸŅ€ĐžĐŋ҃ҁĐēаĐŊĐĩ\"</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_on">Đ‘ŅƒŅ‚ĐžĐŊа Са ĐŋŅ€ĐžĐŋ҃ҁĐēаĐŊĐĩ ҁĐĩ ҁĐēŅ€Đ¸Đ˛Đ° ҁĐģĐĩĐ´ ĐŊŅĐēĐžĐģĐēĐž ҁĐĩĐē҃ĐŊди</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_off">Đ‘ŅƒŅ‚ĐžĐŊа Са ĐŋŅ€ĐžĐŋ҃ҁĐēаĐŊĐĩ ҁĐĩ ĐŋĐžĐēаСва Са Ņ†ŅĐģĐ°Ņ‚Đ° Ņ‡Đ°ŅŅ‚</string>
<string name="revanced_sb_general_skiptoast">ПоĐēаСв. иСвĐĩŅŅ‚Đ¸Đĩ ĐŋŅ€Đ¸ Đ°Đ˛Ņ‚ĐžĐŧ. ĐŋŅ€ĐžĐŋ҃ҁĐē. Ņ‡Đ°ŅŅ‚</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_off">Đ‘ŅƒŅ‚ĐžĐŊŅŠŅ‚ \"ĐŸŅ€ĐžĐŋ҃ҁĐēаĐŊĐĩ\" Đĩ ĐŋĐžĐēаСаĐŊ Са ҆ĐĩĐģĐ¸Ņ ҁĐĩĐŗĐŧĐĩĐŊŅ‚</string>
<string name="revanced_sb_general_skiptoast">ПоĐēаСваĐŊĐĩ ĐŊа toast ĐŋŅ€Đ¸ ĐŋŅ€ĐžĐŋ҃ҁĐēаĐŊĐĩ</string>
<string name="revanced_sb_general_skiptoast_sum_on">ПоĐēаСваĐŊĐĩ ĐŊа иСвĐĩŅŅ‚Đ¸Đĩ ĐŋŅ€Đ¸ Đ°Đ˛Ņ‚ĐžĐŧĐ°Ņ‚Đ¸Ņ‡ĐŊĐž ĐŋŅ€ĐžĐŋ҃ҁĐŊĐ°Ņ‚Đ° Ņ‡Đ°ŅŅ‚. ДоĐēĐžŅĐŊĐĩŅ‚Đĩ Ņ‚ŅƒĐē Са ĐŋŅ€Đ¸ĐŧĐĩŅ€</string>
<string name="revanced_sb_general_skiptoast_sum_off">ИСвĐĩŅŅ‚Đ¸ĐĩŅ‚Đž ĐŊĐĩ ҁĐĩ ĐŋĐžĐēаСва. ДоĐēĐžŅĐŊĐĩŅ‚Đĩ Ņ‚ŅƒĐē Са ĐŋŅ€Đ¸ĐŧĐĩŅ€</string>
<string name="revanced_sb_general_time_without">ПоĐēаСваĐŊĐĩ ĐŊа Đ´ŅŠĐģĐļиĐŊĐ°Ņ‚Đ° ĐŊа видĐĩĐžŅ‚Đž ĐąĐĩС ŅĐ¸ĐŗĐŧĐĩĐŊŅ‚Đ¸Ņ‚Đĩ</string>
<string name="revanced_sb_general_time_without_sum_on">Đ”ŅŠĐģĐļиĐŊĐ°Ņ‚Đ° ĐŊа видĐĩĐžŅ‚Đž ĐąĐĩС Đ˛ŅĐ¸Ņ‡Đēи Ņ‡Đ°ŅŅ‚Đ¸ ĐŋĐžĐēаСаĐŊа в ҁĐēОйи Đ´Đž Ņ†ŅĐģĐ°Ņ‚Đ° Đ´ŅŠĐģĐļиĐŊа</string>
<string name="revanced_sb_general_time_without_sum_off">ĐĻŅĐģĐ°Ņ‚Đ° Đ´ŅŠĐģĐļиĐŊа ĐŊа видĐĩŅ‚Đž ҁĐĩ ĐŋĐžĐēаСва</string>
<string name="revanced_sb_create_segment_category">ĐĄŅŠĐˇĐ´Đ°Đ˛Đ°ĐŊĐĩ ĐŊа ĐŊОви Ņ‡Đ°ŅŅ‚Đ¸</string>
<string name="revanced_sb_enable_create_segment">ПоĐēаСваĐŊĐĩ ĐŊа ĐąŅƒŅ‚ĐžĐŊа Са ĐŊОва Ņ‡Đ°ŅŅ‚</string>
<string name="revanced_sb_enable_create_segment">ПоĐēаСваĐŊĐĩ ĐŊа ĐąŅƒŅ‚ĐžĐŊ \"ĐĄŅŠĐˇĐ´Đ°Đ˛Đ°ĐŊĐĩ ĐŊа ĐŊОв ҁĐĩĐŗĐŧĐĩĐŊŅ‚\"</string>
<string name="revanced_sb_enable_create_segment_sum_on">Đ‘ŅƒŅ‚ĐžĐŊа ŅŅŠĐˇĐ´Đ°Đ˛Đ°ĐŊĐĩ Са ĐŊОва Ņ‡Đ°ŅŅ‚ ҁĐĩ ĐŋĐžĐēаСва</string>
<string name="revanced_sb_enable_create_segment_sum_off">Đ‘ŅƒŅ‚ĐžĐŊа ŅŅŠĐˇĐ´Đ°Đ˛Đ°ĐŊĐĩ Са ĐŊОва Ņ‡Đ°ŅŅ‚ ĐŊĐĩ ҁĐĩ ĐŋĐžĐēаСва</string>
<string name="revanced_sb_general_adjusting">ĐĐ°ŅŅ‚Ņ€ĐžĐšĐ˛Đ°ĐŊĐĩ ŅŅ‚ŅŠĐŋĐēа ĐŊа ĐŊĐžĐ˛Đ°Ņ‚Đ° Ņ‡Đ°ŅŅ‚</string>
@@ -1016,7 +1032,7 @@ Second \"item\" text"</string>
<string name="revanced_sb_skipped_multiple_segments">ĐŸŅ€ĐžĐŋ҃ҁĐŊĐ°Ņ‚Đ¸ ĐŧĐŊĐžĐļĐĩŅŅ‚Đ˛Đž Ņ‡Đ°ŅŅ‚Đ¸</string>
<string name="revanced_sb_skip_automatically">ĐĐ˛Ņ‚ĐžĐŧĐ°Ņ‚Đ¸Ņ‡ĐŊĐž ĐŋŅ€ĐžĐŋ҃ҁĐēаĐŊĐĩ</string>
<string name="revanced_sb_skip_automatically_once">ĐĐ˛Ņ‚. ĐŋŅ€ĐžĐŋ҃ҁĐēаĐŊĐĩ вĐĩĐ´ĐŊҊĐļ</string>
<string name="revanced_sb_skip_showbutton">ПоĐēаСваК ĐąŅƒŅ‚ĐžĐŊ Са ĐŋŅ€ĐžĐŋ҃ҁĐēаĐŊĐĩ</string>
<string name="revanced_sb_skip_showbutton">ПоĐēаСваĐŊĐĩ ĐŊа ĐąŅƒŅ‚ĐžĐŊ \"ĐŸŅ€ĐžĐŋ҃ҁĐēаĐŊĐĩ\"</string>
<string name="revanced_sb_skip_seekbaronly">ПоĐēаСв. в ĐģĐĩĐŊŅ‚Đ°Ņ‚Đ° Са Đ˛Ņ€ĐĩĐŧĐĩ</string>
<string name="revanced_sb_skip_ignore">ДĐĩаĐēŅ‚Đ¸Đ˛Đ¸Ņ€Đ°ĐŊĐĩ</string>
<string name="revanced_sb_submit_failed_invalid">НĐĩ ĐŧĐžĐļĐĩ да ҁĐĩ иСĐŋŅ€Đ°Ņ‚Đ¸ ҁĐĩĐŗĐŧĐĩĐŊŅ‚: %s</string>
@@ -1042,9 +1058,9 @@ Second \"item\" text"</string>
<string name="revanced_sb_new_segment_disabled_category">ĐšĐ°Ņ‚ĐĩĐŗĐžŅ€Đ¸ŅŅ‚Đ° Đĩ иСĐēĐģ. в ĐŊĐ°ŅŅ‚Ņ€ĐžĐšĐēĐ¸Ņ‚Đĩ. ВĐēĐģ. Ņ Са да ĐŧĐžĐļĐĩŅ‚Đĩ да иСĐŋŅ€Đ°Ņ‚Đ¸Ņ‚Đĩ.</string>
<string name="revanced_sb_new_segment_title">Нова Ņ‡Đ°ŅŅ‚ в SponsorBlock</string>
<string name="revanced_sb_new_segment_mark_time_as_question">ЗадаваĐŊĐĩ ĐŊа %s ĐēĐ°Ņ‚Đž ĐŊĐ°Ņ‡Đ°ĐģĐž иĐģи ĐēŅ€Đ°Đš ĐŊа ĐŊОв Ņ€Đ°ĐˇĐ´ĐĩĐģ?</string>
<string name="revanced_sb_new_segment_mark_start">ĐŊĐ°Ņ‡Đ°ĐģĐž</string>
<string name="revanced_sb_new_segment_mark_end">ĐēŅ€Đ°Đš</string>
<string name="revanced_sb_new_segment_now">ҁĐĩĐŗĐ°</string>
<string name="revanced_sb_new_segment_mark_start">ĐĐ°Ņ‡Đ°ĐģĐž</string>
<string name="revanced_sb_new_segment_mark_end">ĐšŅ€Đ°Đš</string>
<string name="revanced_sb_new_segment_now">ĐĄĐĩĐŗĐ°</string>
<string name="revanced_sb_new_segment_time_start">Đ§Đ°ŅŅ‚Ņ‚Đ° СаĐŋĐžŅ‡Đ˛Đ° ĐžŅ‚</string>
<string name="revanced_sb_new_segment_time_end">Đ§Đ°ŅŅ‚Ņ‚Đ° ŅĐ˛ŅŠŅ€ŅˆĐ˛Đ° Đ´Đž</string>
<string name="revanced_sb_new_segment_confirm_title">Đ’Ņ€ĐĩĐŧĐĩĐŊĐ°Ņ‚Đ° Ņ‚ĐžŅ‡ĐŊи Đģи ŅĐ°?</string>
@@ -1065,7 +1081,7 @@ Second \"item\" text"</string>
<string name="revanced_sb_new_segment_edit_by_hand_parse_error">ЗададĐĩĐŊĐž Đĩ ĐŊĐĩваĐģидĐŊĐž Đ˛Ņ€ĐĩĐŧĐĩ</string>
<string name="revanced_sb_stats">ĐĄŅ‚Đ°Ņ‚Đ¸ŅŅ‚Đ¸Đēа</string>
<!-- Shown in the settings preferences, and translations can be any text length. -->
<string name="revanced_sb_stats_connection_failure">ĐĄŅ‚Đ°Ņ‚Đ¸ŅŅ‚Đ¸ĐēĐ°Ņ‚Đ° Đĩ Đ˛Ņ€Đ°ĐŧĐĩĐŊĐŊĐž ĐŊĐĩĐ´ĐžŅŅ‚ŅŠĐŋĐŊа (API ĐŊĐĩ Ņ€Đ°ĐąĐžŅ‚Đ¸)</string>
<string name="revanced_sb_stats_connection_failure">ĐĄŅ‚Đ°Ņ‚Đ¸ŅŅ‚Đ¸ĐēĐ¸Ņ‚Đĩ Đ˛Ņ€ĐĩĐŧĐĩĐŊĐŊĐž ĐŊĐĩ ŅĐ° ĐŊаĐģĐ¸Ņ‡ĐŊи (API ĐŊĐĩ Ņ€Đ°ĐąĐžŅ‚Đ¸)</string>
<string name="revanced_sb_stats_loading">Đ—Đ°Ņ€ĐĩĐļдаĐŊĐĩ...</string>
<string name="revanced_sb_stats_sb_disabled">SponsorBlock Đĩ Đ´ĐĩаĐēŅ‚Đ¸Đ˛Đ¸Ņ€Đ°ĐŊ.</string>
<string name="revanced_sb_stats_username">Đ’Đ°ŅˆĐĩŅ‚Đž ĐŋĐžŅ‚Ņ€ĐĩĐą. иĐŧĐĩ: &lt;b&gt;%s&lt;/b&gt;</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>
@@ -1283,13 +1299,13 @@ Second \"item\" text"</string>
<string name="revanced_alt_thumbnail_stills_time_entry_2">ĐĄŅ€ĐĩĐ´Đ°Ņ‚Đ° ĐŊа видĐĩĐžŅ‚Đž</string>
<string name="revanced_alt_thumbnail_stills_time_entry_3">ĐšŅ€Đ°Ņ ĐŊа видĐĩĐžŅ‚Đž</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 Đ˛Ņ€ĐĩĐŧĐĩĐŊĐŊĐž ĐŊĐĩ Đĩ ĐŊаĐģĐ¸Ņ‡ĐĩĐŊ. (ĐēОд ĐŊа ŅŅŠŅŅ‚ĐžŅĐŊиĐĩŅ‚Đž: %s)</string>
<string name="revanced_alt_thumbnail_dearrow_error">DeArrow Đ˛Ņ€ĐĩĐŧĐĩĐŊĐŊĐž ĐŊĐĩ Đĩ ĐŊаĐģĐ¸Ņ‡ĐĩĐŊ (ĐēОд ĐŊа ŅŅŠŅŅ‚ĐžŅĐŊиĐĩŅ‚Đž: %s)</string>
<string name="revanced_alt_thumbnail_dearrow_error_generic">DeArrow Đ˛Ņ€ĐĩĐŧĐĩĐŊĐŊĐž ĐŊĐĩ Đĩ ĐŊаĐģĐ¸Ņ‡ĐĩĐŊ</string>
</patch>
<patch id="misc.announcements.announcementsPatch">
<string name="revanced_announcements_title">ПоĐēаСваĐŊĐĩ ĐŊа ReVanced ŅŅŠĐžĐąŅ‰ĐĩĐŊĐ¸Ņ</string>
<string name="revanced_announcements_summary_on">ĐĄŅŠĐžĐąŅ‰ĐĩĐŊĐ¸ŅŅ‚Đ° ҁĐĩ ĐŋĐžĐēĐ°ĐˇĐ˛Đ°Ņ‚ ĐŋŅ€Đ¸ ŅŅ‚Đ°Ņ€Ņ‚Đ¸Ņ€Đ°ĐŊĐĩ</string>
<string name="revanced_announcements_summary_off">ĐĄŅŠĐžĐąŅ‰ĐĩĐŊĐ¸ŅŅ‚Đ° ĐŊĐĩ ҁĐĩ ĐŋĐžĐēĐ°ĐˇĐ˛Đ°Ņ‚ ĐŋŅ€Đ¸ ŅŅ‚Đ°Ņ€Ņ‚Đ¸Ņ€Đ°ĐŊĐĩ</string>
<string name="revanced_announcements_summary_on">ĐžĐąŅĐ˛Đ¸Ņ‚Đĩ ĐŋŅ€Đ¸ ŅŅ‚Đ°Ņ€Ņ‚Đ¸Ņ€Đ°ĐŊĐĩ ŅĐ° ĐŋĐžĐēаСаĐŊи</string>
<string name="revanced_announcements_summary_off">ĐžĐąŅĐ˛Đ¸Ņ‚Đĩ ĐŋŅ€Đ¸ ŅŅ‚Đ°Ņ€Ņ‚Đ¸Ņ€Đ°ĐŊĐĩ ĐŊĐĩ ŅĐ° ĐŋĐžĐēаСаĐŊи</string>
<string name="revanced_announcements_enabled_summary">ПоĐēаСваĐŊĐĩ ĐŊа ŅŅŠĐžĐąŅ‰ĐĩĐŊĐ¸Ņ ĐŋŅ€Đ¸ ŅŅ‚Đ°Ņ€Ņ‚Đ¸Ņ€Đ°ĐŊĐĩ</string>
<string name="revanced_announcements_connection_failed">НĐĩ҃ҁĐŋĐĩ҈ĐŊĐž ŅĐ˛ŅŠŅ€ĐˇĐ˛Đ°ĐŊĐĩ ҁ Đ´ĐžŅŅ‚Đ°Đ˛Ņ‡Đ¸Đē ĐŊа ŅŅŠĐžĐąŅ‰ĐĩĐŊĐ¸Ņ</string>
<string name="revanced_announcements_dialog_dismiss">ĐžŅ‚Ņ…Đ˛ŅŠŅ€Đģи</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

@@ -161,16 +161,13 @@ MicroG-āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāϟāĻžāϰāĻŋ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ
<string name="revanced_debug_stacktrace_summary_on">āĻĄāĻŋāĻŦāĻžāĻ— āϞāĻ— āĻ¸ā§āĻŸā§‡āĻ• āĻŸā§āϰ⧇āϏ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻŦ⧇</string>
<string name="revanced_debug_stacktrace_summary_off">āĻĄāĻŋāĻŦāĻžāĻ— āϞāĻ— āĻ¸ā§āĻŸā§‡āĻ• āĻŸā§āϰ⧇āϏ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻŦ⧇ āύāĻž</string>
<string name="revanced_debug_toast_on_error_title">ReVanced āĻāϰ āĻ¤ā§āϰ⧁āϟāĻŋāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻŸā§‹āĻ¸ā§āϟ āĻĻ⧇āĻ–āĻžāύ</string>
<string name="revanced_debug_toast_on_error_summary_on">āϕ⧋āύ āĻ¤ā§āϰ⧁āϟāĻŋ āĻĻ⧇āĻ–āĻž āϗ⧇āϞ⧇ āĻŸā§‹āĻ¸ā§āϟ āĻĻ⧇āĻ–āĻžā§Ÿ</string>
<string name="revanced_debug_toast_on_error_summary_off">āϕ⧋āύ āĻ¤ā§āϰ⧁āϟāĻŋ āĻĻ⧇āĻ–āĻž āϗ⧇āϞ⧇ āĻŸā§‹āĻ¸ā§āϟ āĻĻ⧇āĻ–āĻžā§Ÿ āύāĻž</string>
<string name="revanced_debug_toast_on_error_summary_on">āϝāĻĻāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋ āϘāĻŸā§‡ āϤāĻŦ⧇ toast āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāĻŦ⧇</string>
<string name="revanced_debug_toast_on_error_summary_off">āϝāĻĻāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋ āϘāĻŸā§‡ āϤāĻŦ⧇ toast āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāĻŦ⧇ āύāĻž</string>
<string name="revanced_debug_toast_on_error_user_dialog_message">"āĻ¤ā§āϰ⧁āϟāĻŋ \"toast\" āĻŦāĻ¨ā§āϧ āĻ•āϰ⧇ ReVanced āĻ¤ā§āϰ⧁āϟāĻŋ āĻŦāĻŋāĻœā§āĻžāĻĒā§āϤāĻŋāϗ⧁āϞāĻŋ āϞ⧁āĻ•āĻžāύ⧋ āĻšāϝāĻŧāĨ¤
āφāĻĒāύāĻŋ āϕ⧋āύāĻ“ āĻ…āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤ āϘāϟāύāĻžāϰ āĻŦāĻŋāώāϝāĻŧ⧇ āĻ…āĻŦāĻšāĻŋāϤ āĻšāĻŦ⧇āύ āύāĻžāĨ¤"</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>
@@ -193,22 +190,22 @@ MicroG-āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāϟāĻžāϰāĻŋ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ
<string name="revanced_hide_horizontal_shelves_summary_off">āĻļ⧇āϞāĻĢ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšā§Ÿā§‡āϛ⧇</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">\'āĻœā§Ÿā§‡āύ āĻ•āϰ⧁āύ\' āĻŦā§‹āϤāĻžāĻŽ āϞ⧁āĻ•āĻžāύ</string>
<string name="revanced_hide_join_membership_button_title">āϝ⧋āĻ—āĻĻāĻžāύ āĻŦā§‹āϤāĻžāĻŽ āϞ⧁āĻ•āĻžāύ</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>
<string name="revanced_hide_notify_me_button_summary_on">āĻŦā§‹āϤāĻžāĻŽ āϞ⧁āĻ•āĻžāύ⧋ āφāϛ⧇</string>
<string name="revanced_hide_notify_me_button_summary_off">āĻŦā§‹āϤāĻžāĻŽ āĻĻ⧇āĻ–āĻžāύ⧋ āφāϛ⧇</string>
<!-- 'People also watch' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_search_result_recommendations_title">\'āĻŽāĻžāύ⧁āώ āφāϰāĻ“ āĻĻ⧇āĻ–āϛ⧇\' āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦāύāĻžāϗ⧁āϞ⧋ āϞ⧁āĻ•āĻžāύ</string>
<string name="revanced_hide_search_result_recommendations_summary_on">āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦāύāĻžāϗ⧁āϞ⧋ āϞ⧁āĻ•āĻŋā§Ÿā§‡ āĻ°ā§Ÿā§‡āϛ⧇</string>
<string name="revanced_hide_search_result_recommendations_summary_off">āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦāύāĻžāϗ⧁āϞ⧋ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšā§Ÿā§‡āϛ⧇</string>
<!-- 'People also watched' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_search_result_recommendations_title">\'People also watched\' āϞ⧇āĻŦ⧇āϞ āϞ⧁āĻ•āĻžāύ</string>
<string name="revanced_hide_search_result_recommendations_summary_on">āϞ⧇āĻŦ⧇āϞ āϞ⧁āĻ•āĻžāύ⧋ āφāϛ⧇</string>
<string name="revanced_hide_search_result_recommendations_summary_off">āϞ⧇āĻŦ⧇āϞ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇</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">\'āφāϰāĻ“ āĻĻ⧇āĻ–āĻžāύ\' āĻŦā§‹āϤāĻžāĻŽ āϞ⧁āĻ•āĻžāύ</string>
@@ -224,8 +221,8 @@ MicroG-āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāϟāĻžāϰāĻŋ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ
<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>
@@ -241,7 +238,7 @@ MicroG-āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāϟāĻžāϰāĻŋ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ
<string name="revanced_hide_community_guidelines_title">āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž āϞ⧁āĻ•āĻžāύ</string>
<string name="revanced_hide_community_guidelines_summary_on">āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž āϞ⧁āĻ•āĻŋā§Ÿā§‡ āĻ°ā§Ÿā§‡āϛ⧇</string>
<string name="revanced_hide_community_guidelines_summary_off">āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšā§Ÿā§‡āϛ⧇</string>
<string name="revanced_hide_subscribers_community_guidelines_title">āϏāĻžāĻŦāĻ¸ā§āĻ•ā§āϰāĻžāχāĻŦāĻžāϰāĻĻ⧇āϰ āϏāĻŽā§āĻĒāĻĻā§āϰāĻžā§Ÿ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž āϞ⧁āĻ•āĻžāύ</string>
<string name="revanced_hide_subscribers_community_guidelines_title">āϏāĻžāĻŦāĻ¸ā§āĻ•ā§āϰāĻžāχāĻŦāĻžāϰ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž āϞ⧁āĻ•āĻžāύ</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_on">āϏāĻžāĻŦāĻ¸ā§āĻ•ā§āϰāĻžāχāĻŦāĻžāϰāĻĻ⧇āϰ āϏāĻŽā§āĻĒāĻĻā§āϰāĻžā§Ÿ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž āϞ⧁āĻ•āĻŋā§Ÿā§‡ āĻ°ā§Ÿā§‡āϛ⧇</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_off">āϏāĻžāĻŦāĻ¸ā§āĻ•ā§āϰāĻžāχāĻŦāĻžāϰāĻĻ⧇āϰ āϏāĻŽā§āĻĒāĻĻā§āϰāĻžā§Ÿ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšā§Ÿā§‡āϛ⧇</string>
<string name="revanced_hide_channel_member_shelf_title">āĻšā§āϝāĻžāύ⧇āϞ āĻŽā§‡āĻŽā§āĻŦāĻžāϰ āĻļ⧇āϞāĻĢ āϞ⧁āĻ•āĻžāύ</string>
@@ -280,63 +277,62 @@ MicroG-āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāϟāĻžāϰāĻŋ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ
<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">āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϝ⧁āĻ•ā§āϤ āĻ¸ā§āĻĨāĻžāύ, āϗ⧇āĻŽāϏ, āϏāĻ™ā§āĻ—ā§€āϤ, āĻāĻŦāĻ‚ āωāĻ˛ā§āϞāĻŋāĻ–āĻŋāϤ āĻŦā§āϝāĻ•ā§āϤāĻŋ āĻŦāĻŋāĻ­āĻžāĻ—āϗ⧁āϞāĻŋ āϞ⧁āĻ•āĻžāύ⧋ āφāϛ⧇</string>
<string name="revanced_hide_attributes_section_summary_off">āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϝ⧁āĻ•ā§āϤ āĻ¸ā§āĻĨāĻžāύ, āϗ⧇āĻŽāϏ, āϏāĻ™ā§āĻ—ā§€āϤ, āĻāĻŦāĻ‚ āωāĻ˛ā§āϞāĻŋāĻ–āĻŋāϤ āĻŦā§āϝāĻ•ā§āϤāĻŋ āĻŦāĻŋāĻ­āĻžāĻ—āϗ⧁āϞāĻŋ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇</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">‘āĻĒāĻĄāĻ•āĻžāĻ¸ā§āϟ āĻŦāĻŋāĻ­āĻžāĻ— āϞ⧁āĻ•āĻžāĻ¨â€™</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_how_this_was_made_section_title">\'How this content was made\' āϞ⧁āĻ•āĻžāύ</string>
<string name="revanced_hide_how_this_was_made_section_summary_on">How this content was made āĻŦāĻŋāĻ­āĻžāĻ—āϟāĻŋ āϞ⧁āĻ•āĻžāύ⧋ āφāϛ⧇</string>
<string name="revanced_hide_how_this_was_made_section_summary_off">How this content was made āĻŦāĻŋāĻ­āĻžāĻ—āϟāĻŋ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇</string>
<string name="revanced_hide_podcast_section_title">\'Explore the podcast\' āϞ⧁āĻ•āĻžāύ</string>
<string name="revanced_hide_podcast_section_summary_on">Explore the podcast āĻŦāĻŋāĻ­āĻžāĻ—āϟāĻŋ āϞ⧁āĻ•āĻžāύ⧋ āφāϛ⧇</string>
<string name="revanced_hide_podcast_section_summary_off">Explore the podcast āĻŦāĻŋāĻ­āĻžāĻ—āϟāĻŋ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇</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">\'Key concepts\' āϞ⧁āĻ•āĻžāύ</string>
<string name="revanced_hide_key_concepts_section_summary_on">Key concepts āĻŦāĻŋāĻ­āĻžāĻ—āϟāĻŋ āϞ⧁āĻ•āĻžāύ⧋ āφāϛ⧇</string>
<string name="revanced_hide_key_concepts_section_summary_off">Key concepts āĻŦāĻŋāĻ­āĻžāĻ—āϟāĻŋ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇</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_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>
<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_chat_summary_title">\'Chat summary\' āϞ⧁āĻ•āĻžāύ</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_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_create_a_short_button_summary_on">āĻāĻ•āϟāĻŋ Shorts āĻŦā§‹āϤāĻžāĻŽ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āϞ⧁āĻ•āĻžāύ⧋ āφāϛ⧇</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">āĻāĻ•āϟāĻŋ Shorts āĻŦā§‹āϤāĻžāĻŽ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">āχāĻŽā§‹āϜāĻŋ āĻāĻŦāĻ‚ āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒ āĻŦā§‹āϤāĻžāĻŽ āϞ⧁āĻ•āĻžāύ</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>
<string name="revanced_hide_comments_thanks_button_title">āϧāĻ¨ā§āϝāĻŦāĻžāĻĻ āĻŦāĻžāϟāύ āϞ⧁āĻ•āĻžāύ</string>
<string name="revanced_hide_comments_thanks_button_summary_on">āϧāĻ¨ā§āϝāĻŦāĻžāĻĻ āĻŦā§‹āϤāĻžāĻŽ āϞ⧁āĻ•āĻŋā§Ÿā§‡ āĻ°ā§Ÿā§‡āϛ⧇</string>
<string name="revanced_hide_comments_thanks_button_summary_off">āϧāĻ¨ā§āϝāĻŦāĻžāĻĻ āĻŦā§‹āϤāĻžāĻŽ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšā§Ÿā§‡āϛ⧇</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒ āĻ“ āχāĻŽā§‹āϜāĻŋ āĻŦā§‹āϤāĻžāĻŽ āϞ⧁āĻ•āĻžāύ</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>
<!-- https://logos.fandom.com/wiki/YouTube/Yoodles -->
<string name="revanced_hide_doodles_title">YouTube Doodles ⤛ā¤ŋā¤Ēā¤žā¤ā¤</string>
<string name="revanced_hide_doodles_summary_on">⤏⤰āĨā¤š ā¤Ŧā¤žā¤° Doodles ⤛ā¤ŋā¤ĒāĨ‡ ā¤šāĨā¤ ā¤šāĨˆā¤‚</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>
@@ -417,12 +413,12 @@ MicroG-āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāϟāĻžāϰāĻŋ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ
<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_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_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>
@@ -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">
@@ -462,8 +458,8 @@ MicroG-āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāϟāĻžāϰāĻŋ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ
<string name="revanced_external_downloader_screen_title">āĻŦāĻžāĻšāĻŋāϰ⧇ āĻĄāĻžāωāύāϞ⧋āĻĄ</string>
<string name="revanced_external_downloader_screen_summary">āĻŦāĻžāĻšāĻŋāϰ⧇āϰ āĻĄāĻžāωāύāϞ⧋āĻĄāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϏ⧇āϟāĻŋāĻ‚</string>
<string name="revanced_external_downloader_title">āĻŦāĻžāĻšāĻŋāϰ⧇āϰ āĻĄāĻžāωāύāϞ⧋āĻĄāĻžāϰ āĻŦāĻžāϟāύ āĻĻ⧇āĻ–āĻžāύ</string>
<string name="revanced_external_downloader_summary_on">āĻĒā§āĻ˛ā§‡ā§ŸāĻžāϰ⧇ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻŦā§‹āϤāĻžāĻŽ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšā§Ÿā§‡āϛ⧇</string>
<string name="revanced_external_downloader_summary_off">āĻĒā§āĻ˛ā§‡ā§ŸāĻžāϰ⧇ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻŦā§‹āϤāĻžāĻŽ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšā§ŸāύāĻŋ</string>
<string name="revanced_external_downloader_summary_on">āĻĒā§āϞ⧇āϝāĻŧāĻžāϰ⧇ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻŦā§‹āϤāĻžāĻŽ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇</string>
<string name="revanced_external_downloader_summary_off">āĻĒā§āϞ⧇āϝāĻŧāĻžāϰ⧇ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻŦā§‹āϤāĻžāĻŽ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧāύāĻŋ</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">āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻŦā§‹āϤāĻžāĻŽāϟāĻŋ āĻ“āĻ­āĻžāϰāϰāĻžāχāĻĄ āĻ•āϰ⧁āύ</string>
<string name="revanced_external_downloader_action_button_summary_on">āĻĄāĻžāωāύāϞ⧋āĻĄ āĻŦā§‹āϤāĻžāĻŽāϟāĻŋ āφāĻĒāύāĻžāϰ āĻŦāĻžāĻšāĻŋāϰ⧇āϰ āĻĄāĻžāωāύāϞ⧋āĻĄāĻžāϰ āϖ⧁āϞāĻŦ⧇</string>
@@ -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>
@@ -831,7 +843,7 @@ MicroG-āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāϟāĻžāϰāĻŋ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ
<!-- 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">āĻ…āĻĒāĻ›āĻ¨ā§āĻĻ āϏāĻžāĻŽā§ŸāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻ­ā§āϝ āύ⧟ (API āϏāĻŽā§Ÿ āĻļ⧇āώ āĻšā§Ÿā§‡āϛ⧇)</string>
<string name="revanced_ryd_failure_connection_status_code">āĻ…āĻĒāĻ›āĻ¨ā§āĻĻ āωāĻĒāϞāĻ­ā§āϝ āύ⧟ (āĻ…āĻŦāĻ¸ā§āĻĨāĻž %d)</string>
<string name="revanced_ryd_failure_client_rate_limit_requested">āĻ…āĻĒāĻ›āĻ¨ā§āĻĻ āωāĻĒāϞāĻ­ā§āϝ āύ⧟ (āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ API āϏ⧀āĻŽāĻž āĻĒ⧌āρāϛ⧇āϛ⧇)</string>
<string name="revanced_ryd_failure_client_rate_limit_requested">āĻ…āĻĒāĻ›āĻ¨ā§āĻĻāϗ⧁āϞāĻŋ āωāĻĒāϞāĻŦā§āϧ āύ⧇āχ (āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ API āϏ⧀āĻŽāĻž)</string>
<string name="revanced_ryd_failure_generic">āĻ…āĻĒāĻ›āĻ¨ā§āĻĻ āωāĻĒāϞāĻ­ā§āϝ āύ⧟ (%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">ReturnYouTubeDislike āĻĻāĻŋā§Ÿā§‡ āĻ­ā§‹āϟ āĻĻāĻŋāϤ⧇ āĻ­āĻŋāĻĄāĻŋāĻ“ āφāĻŦāĻžāϰ āϞ⧋āĻĄ āĻ•āϰ⧁āύ</string>
@@ -840,14 +852,14 @@ MicroG-āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāϟāĻžāϰāĻŋ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ
<string name="revanced_ryd_enable_summary_on">āĻ…āĻĒāĻ›āĻ¨ā§āĻĻāϗ⧁āϞ⧋ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšā§Ÿā§‡āϛ⧇</string>
<string name="revanced_ryd_enable_summary_off">āĻ…āĻĒāĻ›āĻ¨ā§āĻĻāϗ⧁āϞ⧋ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšā§ŸāύāĻŋ</string>
<string name="revanced_ryd_shorts_title">Shorts āĻ āĻ…āĻĒāĻ›āĻ¨ā§āĻĻ āĻĻ⧇āĻ–āĻžāύ</string>
<string name="revanced_ryd_shorts_summary_on">Shorts āĻ āĻ…āĻĒāĻ›āĻ¨ā§āĻĻ āĻĒāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšā§Ÿā§‡āϛ⧇</string>
<string name="revanced_ryd_shorts_summary_on_disclaimer">"Shorts-āĻ āĻĄāĻŋāϏāϞāĻžāχāĻ• āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāĻšā§āϛ⧇
<string name="revanced_ryd_shorts_summary_on">Shorts-āĻ āĻ…āĻĒāĻ›āĻ¨ā§āĻĻāϗ⧁āϞāĻŋ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇</string>
<string name="revanced_ryd_shorts_summary_on_disclaimer">"Shorts-āĻ āĻ…āĻĒāĻ›āĻ¨ā§āĻĻāϗ⧁āϞāĻŋ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇
āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž: āĻ—ā§‹āĻĒāύ āĻŽā§‹āĻĄā§‡ āĻĄāĻŋāϏāϞāĻžāχāĻ• āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āύāĻžāĻ“ āĻšāϤ⧇ āĻĒāĻžāϰ⧇"</string>
<string name="revanced_ryd_shorts_summary_off">Shorts āĻ āĻ…āĻĒāĻ›āĻ¨ā§āĻĻ āϞ⧁āĻ•āĻŋā§Ÿā§‡ āĻ°ā§Ÿā§‡āϛ⧇</string>
āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž: āĻ›āĻĻā§āĻŽāĻŦ⧇āĻļā§€ āĻŽā§‹āĻĄā§‡ āĻ…āĻĒāĻ›āĻ¨ā§āĻĻāϗ⧁āϞāĻŋ āύāĻžāĻ“ āĻĻ⧇āĻ–āĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇"</string>
<string name="revanced_ryd_shorts_summary_off">Shorts-āĻ āĻ…āĻĒāĻ›āĻ¨ā§āĻĻāϗ⧁āϞāĻŋ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧāύāĻŋ</string>
<string name="revanced_ryd_dislike_percentage_title">āĻ…āĻĒāĻ›āĻ¨ā§āĻĻāϗ⧁āϞ⧋ āĻļāϤāĻžāĻ‚āĻļ āĻ…āύ⧁āϝāĻžā§Ÿā§€</string>
<string name="revanced_ryd_dislike_percentage_summary_on">āĻ…āĻĒāĻ›āĻ¨ā§āĻĻāϗ⧁āϞ⧋ āĻļāϤāĻžāĻ‚āĻļ āĻ…āύ⧁āϝāĻžā§Ÿā§€ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšā§Ÿā§‡āϛ⧇</string>
<string name="revanced_ryd_dislike_percentage_summary_off">āĻ…āĻĒāĻ›āĻ¨ā§āĻĻāϗ⧁āϞ⧋ āϏāĻ‚āĻ–ā§āϝāĻž āĻ…āύ⧁āϝāĻžā§Ÿā§€ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšā§Ÿā§‡āϛ⧇</string>
<string name="revanced_ryd_dislike_percentage_summary_on">āĻ…āĻĒāĻ›āĻ¨ā§āĻĻāϗ⧁āϞāĻŋ āĻļāϤāĻžāĻ‚āĻļ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇</string>
<string name="revanced_ryd_dislike_percentage_summary_off">āĻ…āĻĒāĻ›āĻ¨ā§āĻĻāϗ⧁āϞāĻŋ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ–ā§āϝāĻž āĻšāĻŋāϏāĻžāĻŦ⧇ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇</string>
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button' -->
<string name="revanced_ryd_compact_layout_title">āĻ•āĻŽā§āĻĒā§āϝāĻžāĻ•ā§āϟ āϞāĻžāχāĻ• āĻŦā§‹āϤāĻžāĻŽ</string>
<string name="revanced_ryd_compact_layout_summary_on">āĻĒāĻ›āĻ¨ā§āĻĻ āĻŦā§‹āϤāĻžāĻŽāϟāĻŋ āĻ¨ā§āϝ⧂āύāϤāĻŽ āĻĒā§āϰāĻ¸ā§āĻĨ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻžāϜāĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇</string>
@@ -909,20 +921,20 @@ MicroG-āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāϟāĻžāϰāĻŋ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ
<string name="revanced_sb_square_layout_sum_on">āĻŦā§‹āϤāĻžāĻŽ āĻāĻŦāĻ‚ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖāϗ⧁āϞāĻŋ āĻŦāĻ°ā§āĻ—āĻ•ā§āώ⧇āĻ¤ā§āϰ</string>
<string name="revanced_sb_square_layout_sum_off">āĻŦā§‹āϤāĻžāĻŽ āĻāĻŦāĻ‚ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖāϗ⧁āϞāĻŋ āĻ—ā§‹āϞāĻžāĻ•āĻžāϰ</string>
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title' -->
<string name="revanced_sb_enable_compact_skip_button">āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻ¸ā§āĻ•āĻŋāĻĒ āĻŦāĻžāϟāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ</string>
<string name="revanced_sb_enable_compact_skip_button">āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ Skip āĻŦā§‹āϤāĻžāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ</string>
<string name="revanced_sb_enable_compact_skip_button_sum_on">āĻ¸ā§āĻ•āĻŋāĻĒ āĻŦā§‹āϤāĻžāĻŽāϟāĻŋ āĻ¨ā§āϝ⧂āύāϤāĻŽ āĻĒā§āϰāĻ¸ā§āĻĨ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻžāϜāĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇</string>
<string name="revanced_sb_enable_compact_skip_button_sum_off">āĻ¸ā§āĻ•āĻŋāĻĒ āĻŦā§‹āϤāĻžāĻŽāϟāĻŋ āϏ⧇āϰāĻž āĻšā§‡āĻšāĻžāϰāĻžāϰ āϜāĻ¨ā§āϝ āϏāĻžāϜāĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button">āĻ¸ā§āĻ•āĻŋāĻĒ āĻŦā§‹āϤāĻžāĻŽ āĻ¸ā§āĻŦ⧟āĻ‚āĻ•ā§āϰāĻŋ⧟āĻ­āĻžāĻŦ⧇ āϞ⧁āĻ•āĻžāύ</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button">Skip āĻŦā§‹āϤāĻžāĻŽāϟāĻŋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āϞ⧁āĻ•āĻžāύ</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_on">āĻ•ā§Ÿā§‡āĻ• āϏ⧇āϕ⧇āĻ¨ā§āĻĄ āĻĒāϰ⧇ āĻ¸ā§āĻ•āĻŋāĻĒ āĻŦā§‹āϤāĻžāĻŽ āϞ⧁āĻ•āĻŋāϝāĻŧ⧇ āϝāĻžāϝāĻŧ</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_off">āĻ¸ā§āĻ•āĻŋāĻĒ āĻŦā§‹āϤāĻžāĻŽ āĻĒ⧁āϰ⧋ āϏ⧇āĻ—āĻŽā§‡āĻ¨ā§āĻŸā§‡ āĻĻ⧃āĻļā§āϝāĻŽāĻžāύ āĻĨāĻžāϕ⧇</string>
<string name="revanced_sb_general_skiptoast">āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻāĻĄāĻŧāĻŋāϝāĻŧ⧇ āϝāĻžāĻ“āϝāĻŧāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻ•āϟāĻŋ āĻŸā§‹āĻ¸ā§āϟ āĻĻ⧇āĻ–āĻžāύ</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_off">āĻĒ⧁āϰ⧋ āĻ…āĻ‚āĻļ⧇āϰ āϜāĻ¨ā§āϝ Skip āĻŦā§‹āϤāĻžāĻŽ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇</string>
<string name="revanced_sb_general_skiptoast">āĻŦāĻžāĻĻ āĻĻ⧇āĻ“āϝāĻŧāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻ•āϟāĻŋ toast āĻĻ⧇āĻ–āĻžāύ</string>
<string name="revanced_sb_general_skiptoast_sum_on">āϏ⧇āĻ—āĻŽā§‡āĻ¨ā§āϟ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻā§œāĻŋā§Ÿā§‡ āϝ⧇āϤ⧇ āĻāĻ•āϟāĻŋ āĻŸā§‹āĻ¸ā§āϟ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āĻ–āϤ⧇ āĻāĻ–āĻžāύ⧇ āĻŸā§āϝāĻžāĻĒ āĻ•āϰ⧁āύ</string>
<string name="revanced_sb_general_skiptoast_sum_off">āĻŸā§‹āĻ¸ā§āϟ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāĻšā§āϛ⧇ āύāĻžāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āĻ–āϤ⧇ āĻāĻ–āĻžāύ⧇ āĻŸā§āϝāĻžāĻĒ āĻ•āϰ⧁āύ</string>
<string name="revanced_sb_general_time_without">āϏ⧇āĻ—āĻŽā§‡āĻ¨ā§āϟ āĻ›āĻžā§œāĻž āĻ­āĻŋāĻĄāĻŋāĻ“āϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻĻ⧇āĻ–āĻžāύ</string>
<string name="revanced_sb_general_time_without_sum_on">āϏāĻŽāĻ¸ā§āϤ āϏ⧇āĻ—āĻŽā§‡āĻ¨ā§āϟ āĻ›āĻžāĻĄāĻŧāĻžāχ āĻ­āĻŋāĻĄāĻŋāĻ“āϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ, āĻĒā§‚āĻ°ā§āĻŖ āĻ­āĻŋāĻĄāĻŋāĻ“āϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ⧇āϰ āĻĒāĻžāĻļ⧇ āĻŦāĻ¨ā§āϧāύ⧀āϤ⧇ āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰāĻž āĻšāϝāĻŧ</string>
<string name="revanced_sb_general_time_without_sum_off">āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ­āĻŋāĻĄāĻŋāĻ“ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšā§Ÿā§‡āϛ⧇</string>
<string name="revanced_sb_create_segment_category">āύāϤ⧁āύ āϏ⧇āĻ—āĻŽāĻ¨ā§āϟ āϤ⧈āϰāĻŋ āĻšāĻšā§āϛ⧇</string>
<string name="revanced_sb_enable_create_segment">āύāϤ⧁āύ āϏ⧇āĻ—āĻŽā§‡āĻ¨ā§āϟ āϤ⧈āϰāĻŋāϰ āĻŦāĻžāϟāύ āĻĻ⧇āĻ–āĻžāύ</string>
<string name="revanced_sb_enable_create_segment">āύāϤ⧁āύ āĻŦāĻŋāĻ­āĻžāĻ— āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āĻŦā§‹āϤāĻžāĻŽāϟāĻŋ āĻĻ⧇āĻ–āĻžāύ</string>
<string name="revanced_sb_enable_create_segment_sum_on">āύāϤ⧁āύ āϏ⧇āĻ—āĻŽā§‡āĻ¨ā§āϟ āϤ⧈āϰāĻŋāϰ āĻŦāĻžāϟāύ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšā§Ÿā§‡āϛ⧇</string>
<string name="revanced_sb_enable_create_segment_sum_off">āύāϤ⧁āύ āϏ⧇āĻ—āĻŽā§‡āĻ¨ā§āϟ āϤ⧈āϰāĻŋāϰ āĻŦāĻžāϟāύ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšā§ŸāύāĻŋ</string>
<string name="revanced_sb_general_adjusting">āύāϤ⧁āύ āϏ⧇āĻ—āĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒ āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝ āĻ•āϰ⧁āύ</string>
@@ -1015,7 +1027,7 @@ MicroG-āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāϟāĻžāϰāĻŋ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ
<string name="revanced_sb_skipped_multiple_segments">āĻāĻ•āϟāĻžāύāĻž āĻāĻ•āĻžāϧāĻŋāĻ• āϏ⧇āĻ—āĻŽā§‡āĻ¨ā§āϟ āĻā§œāĻŋā§Ÿā§‡ āϗ⧇āϛ⧇</string>
<string name="revanced_sb_skip_automatically">āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻāĻĄāĻŧāĻŋāϝāĻŧ⧇ āϝāĻžāύ</string>
<string name="revanced_sb_skip_automatically_once">āĻāĻ•āĻŦāĻžāϰ āĻ¸ā§āĻŦ⧟āĻ‚āĻ•ā§āϰāĻŋ⧟āĻ­āĻžāĻŦ⧇ āĻā§œāĻŋā§Ÿā§‡ āϝāĻžāύ</string>
<string name="revanced_sb_skip_showbutton">āĻā§œāĻŋā§Ÿā§‡ āϝāĻžāύ āĻŦā§‹āϤāĻžāĻŽāϟāĻŋ āĻĻ⧇āĻ–āĻžāύ</string>
<string name="revanced_sb_skip_showbutton">āĻāĻ•āϟāĻŋ Skip āĻŦā§‹āϤāĻžāĻŽ āĻĻ⧇āĻ–āĻžāύ</string>
<string name="revanced_sb_skip_seekbaronly">āϏāĻŋāĻ•āĻŦāĻžāϰ⧇ āĻĻ⧇āĻ–āĻžāύ</string>
<string name="revanced_sb_skip_ignore">āύāĻŋāĻˇā§āĻ•ā§āϰāĻŋ⧟ āĻ•āϰ⧁āύ</string>
<string name="revanced_sb_submit_failed_invalid">%s āϏ⧇āĻ—āĻŽā§‡āĻ¨ā§āϟ āϜāĻŽāĻž āĻĻāĻŋāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻšā§ŸāύāĻŋ</string>
@@ -1065,7 +1077,7 @@ MicroG-āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāϟāĻžāϰāĻŋ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ
<string name="revanced_sb_new_segment_edit_by_hand_parse_error">āϭ⧁āϞ āϏāĻŽāϝāĻŧ āĻĻ⧇āϝāĻŧāĻž āĻšāϝāĻŧ⧇āϛ⧇</string>
<string name="revanced_sb_stats">āĻĒāϰāĻŋāϏāĻ‚āĻ–ā§āϝāĻžāύ</string>
<!-- Shown in the settings preferences, and translations can be any text length. -->
<string name="revanced_sb_stats_connection_failure">āĻĒāϰāĻŋāϏāĻ‚āĻ–ā§āϝāĻžāύ āϏāĻžāĻŽā§ŸāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻ­ā§āϝ āύ⧟ (API āĻĄāĻžāωāύ)</string>
<string name="revanced_sb_stats_connection_failure">āĻĒāϰāĻŋāϏāĻ‚āĻ–ā§āϝāĻžāύ āϏāĻžāĻŽāϝāĻŧāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ āύ⧇āχ (API āĻĄāĻžāωāύ)</string>
<string name="revanced_sb_stats_loading">āϞ⧋āĻĄ āĻšāĻšā§āϛ⧇...</string>
<string name="revanced_sb_stats_sb_disabled">SponsorBlock āύāĻŋāĻ¸ā§āĻ•ā§āϰāĻŋ⧟ āĻšā§Ÿā§‡āϛ⧇</string>
<string name="revanced_sb_stats_username">āφāĻĒāύāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āύāĻžāĻŽ: &lt;b&gt;%s&lt;/b&gt;</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>
@@ -1283,13 +1295,13 @@ DeArrow āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāϰāĻ“ āϜāĻžāύāϤ⧇ āĻāĻ–āĻžāύ⧇ āϟ
<string name="revanced_alt_thumbnail_stills_time_entry_2">āĻ­āĻŋāĻĄāĻŋāĻ“āϰ āĻŽāĻ§ā§āϝāĻžāĻ‚āĻļ</string>
<string name="revanced_alt_thumbnail_stills_time_entry_3">āĻ­āĻŋāĻĄāĻŋāĻ“āϰ āĻļ⧇āώāĻžāĻ‚āĻļ</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 āωāĻĒāϞāĻ­ā§āϝ āύ⧟ (āĻ¸ā§āϟāĻžāϟāĻžāϏ āϕ⧋āĻĄ: %s)</string>
<string name="revanced_alt_thumbnail_dearrow_error_generic">DeArrow āϏāĻžāĻŽāϝāĻŧāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻ­ā§āϝ āύ⧟</string>
<string name="revanced_alt_thumbnail_dearrow_error">DeArrow āϏāĻžāĻŽāϝāĻŧāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ āύ⧇āχ (āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ āϕ⧋āĻĄ: %s)</string>
<string name="revanced_alt_thumbnail_dearrow_error_generic">DeArrow āϏāĻžāĻŽāϝāĻŧāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ āύ⧇āχ</string>
</patch>
<patch id="misc.announcements.announcementsPatch">
<string name="revanced_announcements_title">ReVanced āĻ˜ā§‹āώāĻŖāĻž āĻĻ⧇āĻ–āĻžāύ</string>
<string name="revanced_announcements_summary_on">āĻļ⧁āϰ⧁āϤ⧇ āĻ˜ā§‹āώāĻŖāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšā§Ÿā§‡āϛ⧇</string>
<string name="revanced_announcements_summary_off">āĻļ⧁āϰ⧁āϤ⧇ āĻ˜ā§‹āώāĻŖāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšā§ŸāύāĻŋ</string>
<string name="revanced_announcements_summary_on">āĻ¸ā§āϟāĻžāĻ°ā§āϟāφāĻĒ⧇ āĻ˜ā§‹āώāĻŖāĻžāϗ⧁āϞāĻŋ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇</string>
<string name="revanced_announcements_summary_off">āĻ¸ā§āϟāĻžāĻ°ā§āϟāφāĻĒ⧇ āĻ˜ā§‹āώāĻŖāĻžāϗ⧁āϞāĻŋ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧāύāĻŋ</string>
<string name="revanced_announcements_enabled_summary">āĻļ⧁āϰ⧁āϤ⧇ āĻ˜ā§‹āώāĻŖāĻž āĻĻ⧇āĻ–āĻžāύ</string>
<string name="revanced_announcements_connection_failed">āĻ˜ā§‹āώāύāĻžāĻĻāĻžāϤāĻžāϰ āϏāĻžāĻĨ⧇ āϏāĻŽā§āĻĒāĻ°ā§āĻ• āĻ¸ā§āĻĨāĻžāĻĒāύ āĻŦā§āϝāĻ°ā§āĻĨ āĻšā§Ÿā§‡āϛ⧇</string>
<string name="revanced_announcements_dialog_dismiss">āĻŦāĻžāϤāĻŋāϞ āĻ•āϰ⧁āύ</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 -->

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