mirror of
https://github.com/ReVanced/revanced-patches.git
synced 2026-01-17 08:13:56 +00:00
Compare commits
60 Commits
v5.12.0
...
v5.13.1-de
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a7eed30f46 | ||
|
|
e2de2d8d44 | ||
|
|
7ebbf356c0 | ||
|
|
2ced5c6e2a | ||
|
|
4a090ba659 | ||
|
|
cb609a6d9d | ||
|
|
42e6de9e8f | ||
|
|
c4a5b9a28c | ||
|
|
c86c85947f | ||
|
|
cbbf474c50 | ||
|
|
f147b7b73d | ||
|
|
fb8dbb4723 | ||
|
|
1e0d27e689 | ||
|
|
a2185bce09 | ||
|
|
1b60a72ede | ||
|
|
12b4ee04ad | ||
|
|
f9a6cc96de | ||
|
|
93ea250bf3 | ||
|
|
fdb946a2cc | ||
|
|
7cc939ab03 | ||
|
|
228d72428d | ||
|
|
4db7ab4207 | ||
|
|
329f993024 | ||
|
|
7cd1fb22d8 | ||
|
|
ae111bc0b9 | ||
|
|
79f1dfd3e8 | ||
|
|
f5dd902915 | ||
|
|
10e2b08eb2 | ||
|
|
4ae1155e51 | ||
|
|
69fbfaea19 | ||
|
|
f44fede67c | ||
|
|
3c52ab8017 | ||
|
|
d1641a6e3d | ||
|
|
09773e8934 | ||
|
|
d77d5bfbdd | ||
|
|
a84bded9e7 | ||
|
|
e664a24f73 | ||
|
|
5bf964fff6 | ||
|
|
0c0bbb8713 | ||
|
|
8afe48cd92 | ||
|
|
dde8ea31cb | ||
|
|
d3abbe3e93 | ||
|
|
c8179776ed | ||
|
|
c6c6516b12 | ||
|
|
d6eae01e12 | ||
|
|
ba88603f4b | ||
|
|
d5aab3d464 | ||
|
|
fca2f70c0e | ||
|
|
348f7e12cb | ||
|
|
b6b7208eeb | ||
|
|
a2c79f1349 | ||
|
|
4f5bb3c915 | ||
|
|
4b77d27c77 | ||
|
|
7991c80129 | ||
|
|
6baf4ea2ac | ||
|
|
c89538c8f5 | ||
|
|
94fb367618 | ||
|
|
354835966d | ||
|
|
168f9b769e | ||
|
|
e4c4b3a73a |
175
CHANGELOG.md
175
CHANGELOG.md
@@ -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)
|
||||
|
||||
|
||||
|
||||
4
extensions/nunl/build.gradle.kts
Normal file
4
extensions/nunl/build.gradle.kts
Normal file
@@ -0,0 +1,4 @@
|
||||
dependencies {
|
||||
compileOnly(project(":extensions:shared:library"))
|
||||
compileOnly(project(":extensions:nunl:stub"))
|
||||
}
|
||||
1
extensions/nunl/src/main/AndroidManifest.xml
Normal file
1
extensions/nunl/src/main/AndroidManifest.xml
Normal file
@@ -0,0 +1 @@
|
||||
<manifest/>
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
17
extensions/nunl/stub/build.gradle.kts
Normal file
17
extensions/nunl/stub/build.gradle.kts
Normal 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
|
||||
}
|
||||
}
|
||||
1
extensions/nunl/stub/src/main/AndroidManifest.xml
Normal file
1
extensions/nunl/stub/src/main/AndroidManifest.xml
Normal file
@@ -0,0 +1 @@
|
||||
<manifest/>
|
||||
@@ -0,0 +1,5 @@
|
||||
package nl.nu.performance.api.client.interfaces;
|
||||
|
||||
public class Block {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package nl.nu.performance.api.client.objects;
|
||||
|
||||
import nl.nu.performance.api.client.interfaces.Block;
|
||||
|
||||
public class DividerBlock extends Block {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package nl.nu.performance.api.client.objects;
|
||||
|
||||
import nl.nu.performance.api.client.interfaces.Block;
|
||||
|
||||
public class DpgBannerBlock extends Block {
|
||||
|
||||
}
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package nl.nu.performance.api.client.objects;
|
||||
|
||||
public class StyledText {
|
||||
public final String getText() {
|
||||
throw new UnsupportedOperationException("Stub");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package nl.nu.performance.api.client.unions;
|
||||
|
||||
public interface LinkFlavor {
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package nl.nu.performance.api.client.unions;
|
||||
|
||||
public class SmallArticleLinkFlavor implements LinkFlavor {
|
||||
public final Boolean isPartner() {
|
||||
throw new UnsupportedOperationException("Stub");
|
||||
}
|
||||
}
|
||||
@@ -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) {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,8 +5,6 @@ dependencies {
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdk = 33 // TODO: Update Swipe controls code to allow updating this to the latest sdk.
|
||||
|
||||
defaultConfig {
|
||||
minSdk = 26
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
/**
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
""",
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
""",
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ val unlockSubscriptionPatch = bytecodePatch(
|
||||
) {
|
||||
dependsOn(spoofClientPatch)
|
||||
|
||||
compatibleWith("ml.docilealligator.infinityforreddit")
|
||||
compatibleWith("ml.docilealligator.infinityforreddit", "ml.docilealligator.infinityforreddit.plus")
|
||||
|
||||
execute {
|
||||
setOf(
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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",
|
||||
),
|
||||
|
||||
@@ -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"),
|
||||
|
||||
@@ -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"),
|
||||
)
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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))
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"),
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
@@ -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 }
|
||||
}
|
||||
@@ -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,
|
||||
|
||||
@@ -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;"
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
""",
|
||||
"""
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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[]
|
||||
|
||||
@@ -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;")
|
||||
}
|
||||
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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].
|
||||
*/
|
||||
|
||||
@@ -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",
|
||||
)
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 -->
|
||||
|
||||
@@ -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 -->
|
||||
|
||||
@@ -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">ØĨØŽŲØ§ØĄ ØŖØ˛ØąØ§Øą اŲŲŲØ¯ŲŲ Ø§ŲØŗØ§Ø¨Ų & Ø§ŲØĒØ§ŲŲ</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">Ø§ØŗŲ
اŲŲ
ØŗØĒ؎دŲ
Ø§ŲØŽØ§Øĩ بŲ: <b>%s</b></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 -->
|
||||
|
||||
@@ -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 -->
|
||||
|
||||
@@ -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: <b>%s</b></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 -->
|
||||
|
||||
@@ -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">ĐĄŅ
аваŅŅ ĐŋаĐŋŅŅŅĐ´ĐŊŅ & ĐēĐŊĐžĐŋĐēŅ ĐŊаŅŅŅĐŋĐŊĐ°ĐŗĐ° вŅĐ´Ņа</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">ĐĐĩдаŅŅŅĐŋĐŊŅŅ Đ´ŅСĐģаКĐēŅ (ĐģŅĐŧŅŅ 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 -->
|
||||
|
||||
@@ -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">ĐŅŅĐžĐŊи Са ĐŅĐĩдиŅĐŊĐž & ĐĄĐģĐĩдваŅĐž видĐĩĐž</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">ĐаŅĐĩŅĐž ĐŋĐžŅŅĐĩĐą. иĐŧĐĩ: <b>%s</b></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 -->
|
||||
|
||||
@@ -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">āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āϞā§āĻāĻžāύ & āĻĒāϰāĻŦāϰā§āϤ⧠āĻāĻŋāĻĄāĻŋāĻ āĻŦā§āϤāĻžāĻŽ</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 +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">āĻāĻĒāύāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āύāĻžāĻŽ: <b>%s</b></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
Reference in New Issue
Block a user