Compare commits

..

32 Commits

Author SHA1 Message Date
semantic-release-bot
966a78bd81 chore: Release v5.27.0-dev.2 [skip ci]
# [5.27.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.27.0-dev.1...v5.27.0-dev.2) (2025-06-06)

### Bug Fixes

* **YouTube - Video quality:** Remove non-functional Shorts 144p default quality ([6aff8e8](6aff8e8ca4))
2025-06-06 07:06:49 +00:00
LisoUseInAIKyrios
6aff8e8ca4 fix(YouTube - Video quality): Remove non-functional Shorts 144p default quality 2025-06-06 09:04:07 +02:00
github-actions[bot]
11aa463fa6 chore: Sync translations (#5125) 2025-06-06 09:03:38 +02:00
semantic-release-bot
bf1b639a2f chore: Release v5.27.0-dev.1 [skip ci]
# [5.27.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.26.1-dev.3...v5.27.0-dev.1) (2025-06-05)

### Features

* **YouTube - Theme:** Add option for black and white splash screen animation ([#5119](https://github.com/ReVanced/revanced-patches/issues/5119)) ([6d5380d](6d5380d44d))
2025-06-05 20:08:58 +00:00
LisoUseInAIKyrios
6d5380d44d feat(YouTube - Theme): Add option for black and white splash screen animation (#5119) 2025-06-05 22:06:12 +02:00
github-actions[bot]
7e1547b5b9 chore: Sync translations (#5123) 2025-06-05 22:05:56 +02:00
semantic-release-bot
c790b45cc5 chore: Release v5.26.1-dev.3 [skip ci]
## [5.26.1-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.26.1-dev.2...v5.26.1-dev.3) (2025-06-05)

### Bug Fixes

* **Spotify:** Prevent hiding all navigation bar buttons ([#5122](https://github.com/ReVanced/revanced-patches/issues/5122)) ([65fc6b4](65fc6b43f5))
2025-06-05 19:57:52 +00:00
Nuckyz
65fc6b43f5 fix(Spotify): Prevent hiding all navigation bar buttons (#5122) 2025-06-05 16:55:33 -03:00
semantic-release-bot
2257dd90aa chore: Release v5.26.1-dev.2 [skip ci]
## [5.26.1-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.26.1-dev.1...v5.26.1-dev.2) (2025-06-05)

### Bug Fixes

* **YouTube - Hide layout components:** Remove broken option 'Hide comments emoji picker' ([#5121](https://github.com/ReVanced/revanced-patches/issues/5121)) ([4b8499f](4b8499ff2c))
2025-06-05 19:12:08 +00:00
LisoUseInAIKyrios
4b8499ff2c fix(YouTube - Hide layout components): Remove broken option 'Hide comments emoji picker' (#5121) 2025-06-05 21:09:25 +02:00
Nuckyz
bde3fda972 refactor(Spotify): Add extensions debug logging (#5110) 2025-06-05 16:04:02 -03:00
semantic-release-bot
e2e07b5cb2 chore: Release v5.26.1-dev.1 [skip ci]
## [5.26.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.26.0...v5.26.1-dev.1) (2025-06-05)

### Bug Fixes

* **YouTube - Hide Shorts components:** Disable A/B player flags that prevents hiding buttons ([9d10ab6](9d10ab6c00))
2025-06-05 09:24:29 +00:00
LisoUseInAIKyrios
9d10ab6c00 fix(YouTube - Hide Shorts components): Disable A/B player flags that prevents hiding buttons 2025-06-05 11:21:05 +02:00
github-actions[bot]
d7644152fd chore: Sync translations (#5116) 2025-06-05 11:19:38 +02:00
LisoUseInAIKyrios
9be21f4824 refactor(YouTube - Hide Shorts components): Rename 'Hide comment panel' to 'Hide preview comment' 2025-06-05 11:08:24 +02:00
semantic-release-bot
a2eae0bf04 chore: Release v5.26.0 [skip ci]
# [5.26.0](https://github.com/ReVanced/revanced-patches/compare/v5.25.0...v5.26.0) (2025-06-04)

### Bug Fixes

* **Spotify - Custom theme:** Apply accent color in more places ([#5039](https://github.com/ReVanced/revanced-patches/issues/5039)) ([bc45433](bc45433dcb))
* **YouTube - Hide Shorts components:** Disable A/B player that prevents hiding buttons ([#5104](https://github.com/ReVanced/revanced-patches/issues/5104)) ([1d0c568](1d0c56819b))
* **YouTube:** Support A/B Shorts layout for RYD and component hiding ([#5081](https://github.com/ReVanced/revanced-patches/issues/5081)) ([ff903ba](ff903ba9ac))

### Features

* **Proton Mail:** Add `Remove free accounts limit` patch ([#4970](https://github.com/ReVanced/revanced-patches/issues/4970)) ([49ae0df](49ae0df224))
* **Spotify:** Add `Hide Create button` patch ([#5062](https://github.com/ReVanced/revanced-patches/issues/5062)) ([ce5385b](ce5385b28e))
* **Sync for Reddit:** Add `Fix post thumbnails` patch ([7a53580](7a53580380))
* **YouTube - Hide Shorts components:** Add option to hide comment panel ([#5102](https://github.com/ReVanced/revanced-patches/issues/5102)) ([e435b33](e435b33593))
* **YouTube - Playback Speed:** Use modern custom speed dialog ([#5069](https://github.com/ReVanced/revanced-patches/issues/5069)) ([a320e35](a320e35c32))
2025-06-04 14:05:56 +00:00
LisoUseInAIKyrios
679354b5b3 chore: Merge branch dev to main (#5079) 2025-06-04 16:02:42 +02:00
semantic-release-bot
91dec21033 chore: Release v5.26.0-dev.8 [skip ci]
# [5.26.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v5.26.0-dev.7...v5.26.0-dev.8) (2025-06-04)

### Bug Fixes

* **YouTube - Hide Shorts components:** Disable A/B player that prevents hiding buttons ([#5104](https://github.com/ReVanced/revanced-patches/issues/5104)) ([1d0c568](1d0c56819b))
2025-06-04 11:48:26 +00:00
LisoUseInAIKyrios
1d0c56819b fix(YouTube - Hide Shorts components): Disable A/B player that prevents hiding buttons (#5104) 2025-06-04 13:45:48 +02:00
github-actions[bot]
4410816c22 chore: Sync translations (#5106) 2025-06-04 13:44:35 +02:00
semantic-release-bot
7e4e48bc9f chore: Release v5.26.0-dev.7 [skip ci]
# [5.26.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v5.26.0-dev.6...v5.26.0-dev.7) (2025-06-04)

### Features

* **YouTube - Hide Shorts components:** Add option to hide comment panel ([#5102](https://github.com/ReVanced/revanced-patches/issues/5102)) ([e435b33](e435b33593))
2025-06-04 07:09:39 +00:00
LisoUseInAIKyrios
e435b33593 feat(YouTube - Hide Shorts components): Add option to hide comment panel (#5102) 2025-06-04 09:06:27 +02:00
semantic-release-bot
bf288b83ae chore: Release v5.26.0-dev.6 [skip ci]
# [5.26.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.26.0-dev.5...v5.26.0-dev.6) (2025-06-03)

### Features

* **Sync for Reddit:** Add `Fix post thumbnails` patch ([7a53580](7a53580380))
2025-06-03 19:50:57 +00:00
kolpazar
7a53580380 feat(Sync for Reddit): Add Fix post thumbnails patch 2025-06-03 21:48:24 +02:00
semantic-release-bot
6439efa2a9 chore: Release v5.26.0-dev.5 [skip ci]
# [5.26.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.26.0-dev.4...v5.26.0-dev.5) (2025-06-03)

### Bug Fixes

* **Spotify - Custom theme:** Apply accent color in more places ([#5039](https://github.com/ReVanced/revanced-patches/issues/5039)) ([bc45433](bc45433dcb))
2025-06-03 08:04:58 +00:00
Cilly Leang
bc45433dcb fix(Spotify - Custom theme): Apply accent color in more places (#5039)
Co-authored-by: Nuckyz <61953774+Nuckyz@users.noreply.github.com>
2025-06-03 10:02:15 +02:00
github-actions[bot]
8871803e83 chore: Sync translations (#5095) 2025-06-03 09:59:31 +02:00
semantic-release-bot
18954a0285 chore: Release v5.26.0-dev.4 [skip ci]
# [5.26.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.26.0-dev.3...v5.26.0-dev.4) (2025-06-03)

### Features

* **Spotify:** Add `Hide Create button` patch ([#5062](https://github.com/ReVanced/revanced-patches/issues/5062)) ([ce5385b](ce5385b28e))
2025-06-03 07:18:30 +00:00
Nuckyz
ce5385b28e feat(Spotify): Add Hide Create button patch (#5062) 2025-06-03 09:15:52 +02:00
dependabot[bot]
3f4cdf6f83 chore(deps-dev): bump semantic-release from 24.2.1 to 24.2.5 (#5086) 2025-06-01 20:57:25 +02:00
semantic-release-bot
094b4a1ea8 chore: Release v5.26.0-dev.3 [skip ci]
# [5.26.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.26.0-dev.2...v5.26.0-dev.3) (2025-06-01)

### Features

* **YouTube - Playback Speed:** Use modern custom speed dialog ([#5069](https://github.com/ReVanced/revanced-patches/issues/5069)) ([a320e35](a320e35c32))
2025-06-01 09:15:51 +00:00
MarcaD
a320e35c32 feat(YouTube - Playback Speed): Use modern custom speed dialog (#5069)
Co-authored-by: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com>
2025-06-01 11:12:56 +02:00
96 changed files with 2276 additions and 848 deletions

View File

@@ -1,3 +1,98 @@
# [5.27.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.27.0-dev.1...v5.27.0-dev.2) (2025-06-06)
### Bug Fixes
* **YouTube - Video quality:** Remove non-functional Shorts 144p default quality ([3113cd6](https://github.com/ReVanced/revanced-patches/commit/3113cd6d092952c8657454452f34c0ae85358ec9))
# [5.27.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.26.1-dev.3...v5.27.0-dev.1) (2025-06-05)
### Features
* **YouTube - Theme:** Add option for black and white splash screen animation ([#5119](https://github.com/ReVanced/revanced-patches/issues/5119)) ([42db0c2](https://github.com/ReVanced/revanced-patches/commit/42db0c2e36fefccdbeaa072edcec48b1e05b6270))
## [5.26.1-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.26.1-dev.2...v5.26.1-dev.3) (2025-06-05)
### Bug Fixes
* **Spotify:** Prevent hiding all navigation bar buttons ([#5122](https://github.com/ReVanced/revanced-patches/issues/5122)) ([8afbef0](https://github.com/ReVanced/revanced-patches/commit/8afbef01343c1e3e6e7e4a4cec6319aebfa4b11c))
## [5.26.1-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.26.1-dev.1...v5.26.1-dev.2) (2025-06-05)
### Bug Fixes
* **YouTube - Hide layout components:** Remove broken option 'Hide comments emoji picker' ([#5121](https://github.com/ReVanced/revanced-patches/issues/5121)) ([9a6a639](https://github.com/ReVanced/revanced-patches/commit/9a6a639c4905b00d6dffb0923c839c8e3ae54d0c))
## [5.26.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.26.0...v5.26.1-dev.1) (2025-06-05)
### Bug Fixes
* **YouTube - Hide Shorts components:** Disable A/B player flags that prevents hiding buttons ([bef0dac](https://github.com/ReVanced/revanced-patches/commit/bef0dacac54caf1ca9511d7bc19b19140ccb4eaf))
# [5.26.0](https://github.com/ReVanced/revanced-patches/compare/v5.25.0...v5.26.0) (2025-06-04)
### Bug Fixes
* **Spotify - Custom theme:** Apply accent color in more places ([#5039](https://github.com/ReVanced/revanced-patches/issues/5039)) ([9357887](https://github.com/ReVanced/revanced-patches/commit/9357887b6fca7aaf34dfb0163645b6a998e1db76))
* **YouTube - Hide Shorts components:** Disable A/B player that prevents hiding buttons ([#5104](https://github.com/ReVanced/revanced-patches/issues/5104)) ([835b7bd](https://github.com/ReVanced/revanced-patches/commit/835b7bd7bd667abd632822c98898972e5124dbb6))
* **YouTube:** Support A/B Shorts layout for RYD and component hiding ([#5081](https://github.com/ReVanced/revanced-patches/issues/5081)) ([8ecacaa](https://github.com/ReVanced/revanced-patches/commit/8ecacaad27162d9380014a9a13ac9220b12257b2))
### Features
* **Proton Mail:** Add `Remove free accounts limit` patch ([#4970](https://github.com/ReVanced/revanced-patches/issues/4970)) ([b0440ad](https://github.com/ReVanced/revanced-patches/commit/b0440ad6af0e190e516974ce896dcc54c8d2e122))
* **Spotify:** Add `Hide Create button` patch ([#5062](https://github.com/ReVanced/revanced-patches/issues/5062)) ([3201681](https://github.com/ReVanced/revanced-patches/commit/32016819d2adbdfdd5e028941d56feda36d20b00))
* **Sync for Reddit:** Add `Fix post thumbnails` patch ([e1ec30c](https://github.com/ReVanced/revanced-patches/commit/e1ec30c5b07560a39d7b8ab293b0c1f39fd59ef2))
* **YouTube - Hide Shorts components:** Add option to hide comment panel ([#5102](https://github.com/ReVanced/revanced-patches/issues/5102)) ([22b9bee](https://github.com/ReVanced/revanced-patches/commit/22b9beedd3243a8d6a5635f591b91cdcf307be37))
* **YouTube - Playback Speed:** Use modern custom speed dialog ([#5069](https://github.com/ReVanced/revanced-patches/issues/5069)) ([9a1e6ca](https://github.com/ReVanced/revanced-patches/commit/9a1e6ca178d9833ee2c681fb130b9290a4e89cd8))
# [5.26.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v5.26.0-dev.7...v5.26.0-dev.8) (2025-06-04)
### Bug Fixes
* **YouTube - Hide Shorts components:** Disable A/B player that prevents hiding buttons ([#5104](https://github.com/ReVanced/revanced-patches/issues/5104)) ([835b7bd](https://github.com/ReVanced/revanced-patches/commit/835b7bd7bd667abd632822c98898972e5124dbb6))
# [5.26.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v5.26.0-dev.6...v5.26.0-dev.7) (2025-06-04)
### Features
* **YouTube - Hide Shorts components:** Add option to hide comment panel ([#5102](https://github.com/ReVanced/revanced-patches/issues/5102)) ([22b9bee](https://github.com/ReVanced/revanced-patches/commit/22b9beedd3243a8d6a5635f591b91cdcf307be37))
# [5.26.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.26.0-dev.5...v5.26.0-dev.6) (2025-06-03)
### Features
* **Sync for Reddit:** Add `Fix post thumbnails` patch ([e1ec30c](https://github.com/ReVanced/revanced-patches/commit/e1ec30c5b07560a39d7b8ab293b0c1f39fd59ef2))
# [5.26.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.26.0-dev.4...v5.26.0-dev.5) (2025-06-03)
### Bug Fixes
* **Spotify - Custom theme:** Apply accent color in more places ([#5039](https://github.com/ReVanced/revanced-patches/issues/5039)) ([9357887](https://github.com/ReVanced/revanced-patches/commit/9357887b6fca7aaf34dfb0163645b6a998e1db76))
# [5.26.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.26.0-dev.3...v5.26.0-dev.4) (2025-06-03)
### Features
* **Spotify:** Add `Hide Create button` patch ([#5062](https://github.com/ReVanced/revanced-patches/issues/5062)) ([3201681](https://github.com/ReVanced/revanced-patches/commit/32016819d2adbdfdd5e028941d56feda36d20b00))
# [5.26.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.26.0-dev.2...v5.26.0-dev.3) (2025-06-01)
### Features
* **YouTube - Playback Speed:** Use modern custom speed dialog ([#5069](https://github.com/ReVanced/revanced-patches/issues/5069)) ([9a1e6ca](https://github.com/ReVanced/revanced-patches/commit/9a1e6ca178d9833ee2c681fb130b9290a4e89cd8))
# [5.26.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.26.0-dev.1...v5.26.0-dev.2) (2025-06-01)

View File

@@ -71,9 +71,7 @@ final class PlayerRoutes {
return innerTubeBody.toString();
}
/**
* @noinspection SameParameterValue
*/
@SuppressWarnings("SameParameterValue")
static HttpURLConnection getPlayerResponseConnectionFromRoute(Route.CompiledRoute route, ClientType clientType) throws IOException {
var connection = Requester.getConnectionFromCompiledRoute(YT_API_URL, route);

View File

@@ -6,11 +6,11 @@ dependencies {
android {
defaultConfig {
minSdk = 24
minSdk = 21
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}

View File

@@ -0,0 +1,81 @@
package app.revanced.extension.spotify.layout.hide.createbutton;
import java.util.List;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
@SuppressWarnings("unused")
public final class HideCreateButtonPatch {
/**
* A list of ids of resources which contain the Create button title.
*/
private static final List<String> CREATE_BUTTON_TITLE_RES_ID_LIST = List.of(
Integer.toString(Utils.getResourceIdentifier("navigationbar_musicappitems_create_title", "string"))
);
/**
* The old id of the resource which contained the Create button title. Used in older versions of the app.
*/
private static final int OLD_CREATE_BUTTON_TITLE_RES_ID =
Utils.getResourceIdentifier("bottom_navigation_bar_create_tab_title", "string");
/**
* Injection point. This method is called on every navigation bar item to check whether it is the Create button.
* If the navigation bar item is the Create button, it returns null to erase it.
* The method fingerprint used to patch ensures we can safely return null here.
*/
public static Object returnNullIfIsCreateButton(Object navigationBarItem) {
if (navigationBarItem == null) {
return null;
}
String stringifiedNavigationBarItem = navigationBarItem.toString();
boolean isCreateButton = false;
String matchedTitleResId = null;
for (String titleResId : CREATE_BUTTON_TITLE_RES_ID_LIST) {
// In case the resource id has not been found.
if (titleResId.equals("0")) {
continue;
}
if (stringifiedNavigationBarItem.contains(titleResId)) {
isCreateButton = true;
matchedTitleResId = titleResId;
}
}
if (isCreateButton) {
String finalMatchedTitleResId = matchedTitleResId;
Logger.printInfo(() -> "Hiding Create button because the navigation bar item " + navigationBarItem +
" matched the title resource id " + finalMatchedTitleResId);
return null;
}
return navigationBarItem;
}
/**
* Injection point. Called in older versions of the app. Returns whether the old navigation bar item is the old
* Create button.
*/
public static boolean isOldCreateButton(int oldNavigationBarItemTitleResId) {
// In case the resource id has not been found.
if (OLD_CREATE_BUTTON_TITLE_RES_ID == 0) {
return false;
}
boolean isCreateButton = oldNavigationBarItemTitleResId == OLD_CREATE_BUTTON_TITLE_RES_ID;
if (isCreateButton) {
Logger.printInfo(() -> "Hiding old Create button because the navigation bar item title resource id" +
" matched " + OLD_CREATE_BUTTON_TITLE_RES_ID);
return true;
}
return false;
}
}

View File

@@ -8,15 +8,54 @@ import app.revanced.extension.shared.Utils;
@SuppressWarnings("unused")
public final class CustomThemePatch {
private static final int BACKGROUND_COLOR = getColorFromString("@color/gray_7");
private static final int BACKGROUND_COLOR_SECONDARY = getColorFromString("@color/gray_15");
private static final int ACCENT_COLOR = getColorFromString("@color/spotify_green_157");
private static final int ACCENT_PRESSED_COLOR =
getColorFromString("@color/dark_brightaccent_background_press");
/**
* Injection point.
* Returns an int representation of the color resource or hex code.
*/
public static long getThemeColor(String colorString) {
private static int getColorFromString(String colorString) {
try {
return Utils.getColorFromString(colorString);
} catch (Exception ex) {
Logger.printException(() -> "Invalid custom color: " + colorString, ex);
Logger.printException(() -> "Invalid color string: " + colorString, ex);
return Color.BLACK;
}
}
/**
* Injection point. Returns an int representation of the replaced color from the original color.
*/
public static int replaceColor(int originalColor) {
switch (originalColor) {
// Playlist background color.
case 0xFF121212:
return BACKGROUND_COLOR;
// Share menu background color.
case 0xFF1F1F1F:
// Home category pills background color.
case 0xFF333333:
// Settings header background color.
case 0xFF282828:
// Spotify Connect device list background color.
case 0xFF2A2A2A:
return BACKGROUND_COLOR_SECONDARY;
// Some Lottie animations have a color that's slightly off due to rounding errors.
case 0xFF1ED760: case 0xFF1ED75F:
// Intermediate color used in some animations, same rounding issue.
case 0xFF1DB954: case 0xFF1CB854:
return ACCENT_COLOR;
case 0xFF1ABC54:
return ACCENT_PRESSED_COLOR;
default:
return originalColor;
}
}
}

View File

@@ -33,10 +33,11 @@ public final class SanitizeSharingLinksPatch {
}
}
return builder.build().toString();
String sanitizedUrl = builder.build().toString();
Logger.printInfo(() -> "Sanitized url " + url + " to " + sanitizedUrl);
return sanitizedUrl;
} catch (Exception ex) {
Logger.printException(() -> "sanitizeUrl failure", ex);
Logger.printException(() -> "sanitizeUrl failure with " + url, ex);
return url;
}
}

View File

@@ -7,11 +7,11 @@ android {
compileSdk = 34
defaultConfig {
minSdk = 26
minSdk = 21
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}

View File

@@ -105,6 +105,14 @@ public class ThemeHelper {
return isDarkTheme() ? getLightThemeColor() : getDarkThemeColor();
}
public static int getDialogBackgroundColor() {
final String colorName = isDarkTheme()
? "yt_black1"
: "yt_white1";
return Utils.getColorFromString(colorName);
}
public static int getToolbarBackgroundColor() {
final String colorName = isDarkTheme()
? "yt_black3"

View File

@@ -686,7 +686,7 @@ public final class AlternativeThumbnailsPatch {
? "" : fullUrl.substring(imageExtensionEndIndex);
}
/** @noinspection SameParameterValue */
@SuppressWarnings("SameParameterValue")
String createStillsUrl(@NonNull ThumbnailQuality qualityToUse, boolean includeViewTracking) {
// Images could be upgraded to webp if they are not already, but this fails quite often,
// especially for new videos uploaded in the last hour.

View File

@@ -153,14 +153,12 @@ public class ReturnYouTubeDislikePatch {
}
if (Utils.containsAny(conversionContextString,
"|shorts_dislike_button.eml", "|reel_dislike_button.eml"
)) {
"|shorts_dislike_button.eml", "|reel_dislike_button.eml")) {
return getShortsSpan(original, true);
}
if (Utils.containsAny(conversionContextString,
"|shorts_like_button.eml", "|reel_like_button.eml"
)) {
"|shorts_like_button.eml", "|reel_like_button.eml")) {
if (!Utils.containsNumber(original)) {
Logger.printDebug(() -> "Replacing hidden likes count");
return getShortsSpan(original, false);
@@ -365,6 +363,11 @@ public class ReturnYouTubeDislikePatch {
if (videoId.equals(lastPrefetchedVideoId)) {
return;
}
if (!Utils.isNetworkConnected()) {
Logger.printDebug(() -> "Cannot pre-fetch RYD, network is not connected");
lastPrefetchedVideoId = null;
return;
}
final boolean videoIdIsShort = VideoInformation.lastPlayerResponseIsShort();
// Shorts shelf in home and subscription feed causes player response hook to be called,
@@ -419,6 +422,12 @@ public class ReturnYouTubeDislikePatch {
}
Logger.printDebug(() -> "New video id: " + videoId + " playerType: " + currentPlayerType);
if (!Utils.isNetworkConnected()) {
Logger.printDebug(() -> "Cannot fetch RYD, network is not connected");
currentVideoData = null;
return;
}
ReturnYouTubeDislike data = ReturnYouTubeDislike.getFetchForVideoId(videoId);
// Pre-emptively set the data to short status.
// Required to prevent Shorts data from being used on a minimized video in incognito mode.

View File

@@ -354,4 +354,23 @@ public final class VideoInformation {
return videoTime >= videoLength && videoLength > 0;
}
/**
* Overrides the current playback speed.
* Rest of the implementation added by patch.
*/
public static void overridePlaybackSpeed(float speedOverride) {
Logger.printDebug(() -> "Overriding playback speed to: " + speedOverride);
}
/**
* Injection point.
*
* @param newlyLoadedPlaybackSpeed The current playback speed.
*/
public static void setPlaybackSpeed(float newlyLoadedPlaybackSpeed) {
if (playbackSpeed != newlyLoadedPlaybackSpeed) {
Logger.printDebug(() -> "Video speed changed: " + newlyLoadedPlaybackSpeed);
playbackSpeed = newlyLoadedPlaybackSpeed;
}
}
}

View File

@@ -7,11 +7,6 @@ import app.revanced.extension.youtube.settings.Settings;
@SuppressWarnings("unused")
final class CommentsFilter extends Filter {
private static final String TIMESTAMP_OR_EMOJI_BUTTONS_ENDS_WITH_PATH
= "|CellType|ContainerType|ContainerType|ContainerType|ContainerType|ContainerType|";
private final StringFilterGroup commentComposer;
private final ByteArrayFilterGroup emojiPickerBufferGroup;
private final StringFilterGroup filterChipBar;
private final ByteArrayFilterGroup aiCommentsSummary;
@@ -50,14 +45,9 @@ final class CommentsFilter extends Filter {
"super_thanks_button.eml"
);
commentComposer = new StringFilterGroup(
Settings.HIDE_COMMENTS_TIMESTAMP_AND_EMOJI_BUTTONS,
"comment_composer.eml"
);
emojiPickerBufferGroup = new ByteArrayFilterGroup(
null,
"id.comment.quick_emoji.button"
StringFilterGroup timestampButton = new StringFilterGroup(
Settings.HIDE_COMMENTS_TIMESTAMP_BUTTON,
"composer_timestamp_button.eml"
);
filterChipBar = new StringFilterGroup(
@@ -77,7 +67,7 @@ final class CommentsFilter extends Filter {
createAShort,
previewComment,
thanksButton,
commentComposer,
timestampButton,
filterChipBar
);
}
@@ -85,14 +75,6 @@ final class CommentsFilter extends Filter {
@Override
boolean isFiltered(@Nullable String identifier, String path, byte[] protobufBufferArray,
StringFilterGroup matchedGroup, FilterContentType contentType, int contentIndex) {
if (matchedGroup == commentComposer) {
// To completely hide the emoji buttons (and leave no empty space), the timestamp button is
// also hidden because the buffer is exactly the same and there's no way selectively hide.
return contentIndex == 0
&& path.endsWith(TIMESTAMP_OR_EMOJI_BUTTONS_ENDS_WITH_PATH)
&& emojiPickerBufferGroup.check(protobufBufferArray).isFiltered();
}
if (matchedGroup == filterChipBar) {
return aiCommentsSummary.check(protobufBufferArray).isFiltered();
}

View File

@@ -10,18 +10,11 @@ import app.revanced.extension.youtube.settings.Settings;
*/
public final class PlaybackSpeedMenuFilterPatch extends Filter {
/**
* Old litho based speed selection menu.
*/
public static volatile boolean isOldPlaybackSpeedMenuVisible;
/**
* 0.05x speed selection menu.
*/
public static volatile boolean isPlaybackRateSelectorMenuVisible;
private final StringFilterGroup oldPlaybackMenuGroup;
public PlaybackSpeedMenuFilterPatch() {
// 0.05x litho speed menu.
var playbackRateSelectorGroup = new StringFilterGroup(
@@ -29,22 +22,13 @@ public final class PlaybackSpeedMenuFilterPatch extends Filter {
"playback_rate_selector_menu_sheet.eml-js"
);
// Old litho based speed menu.
oldPlaybackMenuGroup = new StringFilterGroup(
Settings.CUSTOM_SPEED_MENU,
"playback_speed_sheet_content.eml-js");
addPathCallbacks(playbackRateSelectorGroup, oldPlaybackMenuGroup);
addPathCallbacks(playbackRateSelectorGroup);
}
@Override
boolean isFiltered(@Nullable String identifier, String path, byte[] protobufBufferArray,
StringFilterGroup matchedGroup, FilterContentType contentType, int contentIndex) {
if (matchedGroup == oldPlaybackMenuGroup) {
isOldPlaybackSpeedMenuVisible = true;
} else {
isPlaybackRateSelectorMenuVisible = true;
}
isPlaybackRateSelectorMenuVisible = true;
return false;
}

View File

@@ -217,6 +217,12 @@ public final class ShortsFilter extends Filter {
// Suggested actions.
//
suggestedActionsGroupList.addAll(
new ByteArrayFilterGroup(
Settings.HIDE_SHORTS_PREVIEW_COMMENT,
// Preview comment that can popup while a Short is playing.
// Uses no bundled icons, and instead the users profile photo is shown.
"shorts-comments-panel"
),
new ByteArrayFilterGroup(
Settings.HIDE_SHORTS_SHOP_BUTTON,
"yt_outline_bag_"

View File

@@ -1,24 +1,57 @@
package app.revanced.extension.youtube.patches.playback.speed;
import static app.revanced.extension.shared.StringRef.str;
import static app.revanced.extension.shared.Utils.dipToPixels;
import android.annotation.SuppressLint;
import android.app.Dialog;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.PorterDuff;
import android.graphics.Rect;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.RoundRectShape;
import android.icu.text.NumberFormat;
import android.support.v7.widget.RecyclerView;
import android.view.animation.Animation;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.GridLayout;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.TextView;
import java.lang.ref.WeakReference;
import java.util.Arrays;
import java.util.function.Function;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
import app.revanced.extension.youtube.ThemeHelper;
import app.revanced.extension.youtube.patches.VideoInformation;
import app.revanced.extension.youtube.patches.components.PlaybackSpeedMenuFilterPatch;
import app.revanced.extension.youtube.settings.Settings;
import app.revanced.extension.youtube.shared.PlayerType;
import kotlin.Unit;
import kotlin.jvm.functions.Function1;
@SuppressWarnings("unused")
public class CustomPlaybackSpeedPatch {
/**
* Maximum playback speed, exclusive value. Custom speeds must be less than this value.
* Maximum playback speed, inclusive. Custom speeds must be this or less.
* <p>
* Going over 8x does not increase the actual playback speed any higher,
* and the UI selector starts flickering and acting weird.
@@ -26,6 +59,11 @@ public class CustomPlaybackSpeedPatch {
*/
public static final float PLAYBACK_SPEED_MAXIMUM = 8;
/**
* Scale used to convert user speed to {@link android.widget.ProgressBar#setProgress(int)}.
*/
private static final float PROGRESS_BAR_VALUE_SCALE = 100;
/**
* Tap and hold speed.
*/
@@ -34,16 +72,28 @@ public class CustomPlaybackSpeedPatch {
/**
* Custom playback speeds.
*/
public static float[] customPlaybackSpeeds;
public static final float[] customPlaybackSpeeds;
/**
* The last time the old playback menu was forcefully called.
* Formats speeds to UI strings.
*/
private static long lastTimeOldPlaybackMenuInvoked;
private static final NumberFormat speedFormatter = NumberFormat.getNumberInstance();
/**
* Weak reference to the currently open dialog.
*/
private static WeakReference<Dialog> currentDialog = new WeakReference<>(null);
/**
* Minimum and maximum custom playback speeds of {@link #customPlaybackSpeeds}.
*/
private static final float customPlaybackSpeedsMin, customPlaybackSpeedsMax;
static {
final float holdSpeed = Settings.SPEED_TAP_AND_HOLD.get();
// Cap at 2 decimals (rounds automatically).
speedFormatter.setMaximumFractionDigits(2);
final float holdSpeed = Settings.SPEED_TAP_AND_HOLD.get();
if (holdSpeed > 0 && holdSpeed <= PLAYBACK_SPEED_MAXIMUM) {
TAP_AND_HOLD_SPEED = holdSpeed;
} else {
@@ -51,7 +101,9 @@ public class CustomPlaybackSpeedPatch {
TAP_AND_HOLD_SPEED = Settings.SPEED_TAP_AND_HOLD.resetToDefault();
}
loadCustomSpeeds();
customPlaybackSpeeds = loadCustomSpeeds();
customPlaybackSpeedsMin = customPlaybackSpeeds[0];
customPlaybackSpeedsMax = customPlaybackSpeeds[customPlaybackSpeeds.length - 1];
}
/**
@@ -65,37 +117,41 @@ public class CustomPlaybackSpeedPatch {
Utils.showToastLong(str("revanced_custom_playback_speeds_invalid", PLAYBACK_SPEED_MAXIMUM));
}
private static void loadCustomSpeeds() {
private static float[] loadCustomSpeeds() {
try {
String[] speedStrings = Settings.CUSTOM_PLAYBACK_SPEEDS.get().split("\\s+");
// Automatically replace commas with periods,
// if the user added speeds in a localized format.
String[] speedStrings = Settings.CUSTOM_PLAYBACK_SPEEDS.get()
.replace(',', '.').split("\\s+");
Arrays.sort(speedStrings);
if (speedStrings.length == 0) {
throw new IllegalArgumentException();
}
customPlaybackSpeeds = new float[speedStrings.length];
float[] speeds = new float[speedStrings.length];
int i = 0;
for (String speedString : speedStrings) {
final float speedFloat = Float.parseFloat(speedString);
if (speedFloat <= 0 || arrayContains(customPlaybackSpeeds, speedFloat)) {
if (speedFloat <= 0 || arrayContains(speeds, speedFloat)) {
throw new IllegalArgumentException();
}
if (speedFloat >= PLAYBACK_SPEED_MAXIMUM) {
if (speedFloat > PLAYBACK_SPEED_MAXIMUM) {
showInvalidCustomSpeedToast();
Settings.CUSTOM_PLAYBACK_SPEEDS.resetToDefault();
loadCustomSpeeds();
return;
return loadCustomSpeeds();
}
customPlaybackSpeeds[i++] = speedFloat;
speeds[i++] = speedFloat;
}
return speeds;
} catch (Exception ex) {
Logger.printInfo(() -> "parse error", ex);
Utils.showToastLong(str("revanced_custom_playback_speeds_parse_exception"));
Logger.printInfo(() -> "Parse error", ex);
Utils.showToastShort(str("revanced_custom_playback_speeds_parse_exception"));
Settings.CUSTOM_PLAYBACK_SPEEDS.resetToDefault();
loadCustomSpeeds();
return loadCustomSpeeds();
}
}
@@ -113,38 +169,28 @@ public class CustomPlaybackSpeedPatch {
recyclerView.getViewTreeObserver().addOnDrawListener(() -> {
try {
if (PlaybackSpeedMenuFilterPatch.isPlaybackRateSelectorMenuVisible) {
if (hideLithoMenuAndShowOldSpeedMenu(recyclerView, 5)) {
if (hideLithoMenuAndShowCustomSpeedMenu(recyclerView, 5)) {
PlaybackSpeedMenuFilterPatch.isPlaybackRateSelectorMenuVisible = false;
}
return;
}
} catch (Exception ex) {
Logger.printException(() -> "isPlaybackRateSelectorMenuVisible failure", ex);
}
try {
if (PlaybackSpeedMenuFilterPatch.isOldPlaybackSpeedMenuVisible) {
if (hideLithoMenuAndShowOldSpeedMenu(recyclerView, 8)) {
PlaybackSpeedMenuFilterPatch.isOldPlaybackSpeedMenuVisible = false;
}
}
} catch (Exception ex) {
Logger.printException(() -> "isOldPlaybackSpeedMenuVisible failure", ex);
Logger.printException(() -> "onFlyoutMenuCreate failure", ex);
}
});
}
private static boolean hideLithoMenuAndShowOldSpeedMenu(RecyclerView recyclerView, int expectedChildCount) {
@SuppressWarnings("SameParameterValue")
private static boolean hideLithoMenuAndShowCustomSpeedMenu(RecyclerView recyclerView, int expectedChildCount) {
if (recyclerView.getChildCount() == 0) {
return false;
}
View firstChild = recyclerView.getChildAt(0);
if (!(firstChild instanceof ViewGroup PlaybackSpeedParentView)) {
if (!(firstChild instanceof ViewGroup playbackSpeedParentView)) {
return false;
}
if (PlaybackSpeedParentView.getChildCount() != expectedChildCount) {
if (playbackSpeedParentView.getChildCount() != expectedChildCount) {
return false;
}
@@ -168,23 +214,418 @@ public class CustomPlaybackSpeedPatch {
((ViewGroup) parentView3rd).setVisibility(View.GONE);
((ViewGroup) parentView4th).setVisibility(View.GONE);
// Close the litho speed menu and show the old one.
showOldPlaybackSpeedMenu();
// Close the litho speed menu and show the modern custom speed dialog.
showModernCustomPlaybackSpeedDialog(recyclerView.getContext());
Logger.printDebug(() -> "Modern playback speed dialog shown");
return true;
}
public static void showOldPlaybackSpeedMenu() {
// This method is sometimes used multiple times.
// To prevent this, ignore method reuse within 1 second.
final long now = System.currentTimeMillis();
if (now - lastTimeOldPlaybackMenuInvoked < 1000) {
Logger.printDebug(() -> "Ignoring call to showOldPlaybackSpeedMenu");
return;
}
lastTimeOldPlaybackMenuInvoked = now;
Logger.printDebug(() -> "Old video quality menu shown");
/**
* Displays a modern custom dialog for adjusting video playback speed.
* <p>
* This method creates a dialog with a slider, plus/minus buttons, and preset speed buttons
* to allow the user to modify the video playback speed. The dialog is styled with rounded
* corners and themed colors, positioned at the bottom of the screen. The playback speed
* can be adjusted in 0.05 increments using the slider or buttons, or set directly to preset
* values. The dialog updates the displayed speed in real-time and applies changes to the
* video playback. The dialog is dismissed if the player enters Picture-in-Picture (PiP) mode.
*/
@SuppressLint("SetTextI18n")
public static void showModernCustomPlaybackSpeedDialog(Context context) {
// Create a dialog without a theme for custom appearance.
Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); // Remove default title bar.
// Rest of the implementation added by patch.
// Store the dialog reference.
currentDialog = new WeakReference<>(dialog);
// Create main vertical LinearLayout for dialog content.
LinearLayout mainLayout = new LinearLayout(context);
mainLayout.setOrientation(LinearLayout.VERTICAL);
// Preset size constants.
final int dip4 = dipToPixels(4); // Height for handle bar.
final int dip5 = dipToPixels(5);
final int dip6 = dipToPixels(6); // Padding for mainLayout from bottom.
final int dip8 = dipToPixels(8); // Padding for mainLayout from left and right.
final int dip20 = dipToPixels(20);
final int dip32 = dipToPixels(32); // Height for in-rows speed buttons.
final int dip36 = dipToPixels(36); // Height for minus and plus buttons.
final int dip40 = dipToPixels(40); // Width for handle bar.
final int dip60 = dipToPixels(60); // Height for speed button container.
mainLayout.setPadding(dip5, dip8, dip5, dip8);
// Set rounded rectangle background for the main layout.
RoundRectShape roundRectShape = new RoundRectShape(
createCornerRadii(12), null, null);
ShapeDrawable background = new ShapeDrawable(roundRectShape);
background.getPaint().setColor(ThemeHelper.getDialogBackgroundColor());
mainLayout.setBackground(background);
// Add handle bar at the top.
View handleBar = new View(context);
ShapeDrawable handleBackground = new ShapeDrawable(new RoundRectShape(
createCornerRadii(4), null, null));
handleBackground.getPaint().setColor(getAdjustedBackgroundColor(true));
handleBar.setBackground(handleBackground);
LinearLayout.LayoutParams handleParams = new LinearLayout.LayoutParams(
dip40, // handle bar width.
dip4 // handle bar height.
);
handleParams.gravity = Gravity.CENTER_HORIZONTAL; // Center horizontally.
handleParams.setMargins(0, 0, 0, dip20); // 20dp bottom margins.
handleBar.setLayoutParams(handleParams);
// Add handle bar view to main layout.
mainLayout.addView(handleBar);
// Display current playback speed.
TextView currentSpeedText = new TextView(context);
float currentSpeed = VideoInformation.getPlaybackSpeed();
// Initially show with only 0 minimum digits, so 1.0 shows as 1x
currentSpeedText.setText(formatSpeedStringX(currentSpeed, 0));
currentSpeedText.setTextColor(ThemeHelper.getForegroundColor());
currentSpeedText.setTextSize(16);
currentSpeedText.setTypeface(Typeface.DEFAULT_BOLD);
currentSpeedText.setGravity(Gravity.CENTER);
LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
textParams.setMargins(0, 0, 0, 0);
currentSpeedText.setLayoutParams(textParams);
// Add current speed text view to main layout.
mainLayout.addView(currentSpeedText);
// Create horizontal layout for slider and +/- buttons.
LinearLayout sliderLayout = new LinearLayout(context);
sliderLayout.setOrientation(LinearLayout.HORIZONTAL);
sliderLayout.setGravity(Gravity.CENTER_VERTICAL);
sliderLayout.setPadding(dip5, dip5, dip5, dip5); // 5dp padding.
// Create minus button.
Button minusButton = new Button(context, null, 0); // Disable default theme style.
minusButton.setText(""); // No text on button.
ShapeDrawable minusBackground = new ShapeDrawable(new RoundRectShape(createCornerRadii(20), null, null));
minusBackground.getPaint().setColor(getAdjustedBackgroundColor(false));
minusButton.setBackground(minusBackground);
OutlineSymbolDrawable minusDrawable = new OutlineSymbolDrawable(false); // Minus symbol.
minusButton.setForeground(minusDrawable);
LinearLayout.LayoutParams minusParams = new LinearLayout.LayoutParams(dip36, dip36);
minusParams.setMargins(0, 0, dip5, 0); // 5dp to slider.
minusButton.setLayoutParams(minusParams);
// Create slider for speed adjustment.
SeekBar speedSlider = new SeekBar(context);
speedSlider.setMax(speedToProgressValue(customPlaybackSpeedsMax));
speedSlider.setProgress(speedToProgressValue(currentSpeed));
speedSlider.getProgressDrawable().setColorFilter(
ThemeHelper.getForegroundColor(), PorterDuff.Mode.SRC_IN); // Theme progress bar.
speedSlider.getThumb().setColorFilter(
ThemeHelper.getForegroundColor(), PorterDuff.Mode.SRC_IN); // Theme slider thumb.
LinearLayout.LayoutParams sliderParams = new LinearLayout.LayoutParams(
0, LinearLayout.LayoutParams.WRAP_CONTENT, 1f);
sliderParams.setMargins(dip5, 0, dip5, 0); // 5dp to -/+ buttons.
speedSlider.setLayoutParams(sliderParams);
// Create plus button.
Button plusButton = new Button(context, null, 0); // Disable default theme style.
plusButton.setText(""); // No text on button.
ShapeDrawable plusBackground = new ShapeDrawable(new RoundRectShape(
createCornerRadii(20), null, null));
plusBackground.getPaint().setColor(getAdjustedBackgroundColor(false));
plusButton.setBackground(plusBackground);
OutlineSymbolDrawable plusDrawable = new OutlineSymbolDrawable(true); // Plus symbol.
plusButton.setForeground(plusDrawable);
LinearLayout.LayoutParams plusParams = new LinearLayout.LayoutParams(dip36, dip36);
plusParams.setMargins(dip5, 0, 0, 0); // 5dp to slider.
plusButton.setLayoutParams(plusParams);
// Add -/+ and slider views to slider layout.
sliderLayout.addView(minusButton);
sliderLayout.addView(speedSlider);
sliderLayout.addView(plusButton);
LinearLayout.LayoutParams sliderLayoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
sliderLayoutParams.setMargins(0, 0, 0, dip5); // 5dp bottom margin.
sliderLayout.setLayoutParams(sliderLayoutParams);
// Add slider layout to main layout.
mainLayout.addView(sliderLayout);
Function<Float, Void> userSelectedSpeed = newSpeed -> {
final float roundedSpeed = roundSpeedToNearestIncrement(newSpeed);
if (VideoInformation.getPlaybackSpeed() == roundedSpeed) {
// Nothing has changed. New speed rounds to the current speed.
return null;
}
VideoInformation.overridePlaybackSpeed(roundedSpeed);
RememberPlaybackSpeedPatch.userSelectedPlaybackSpeed(roundedSpeed);
currentSpeedText.setText(formatSpeedStringX(roundedSpeed, 2)); // Update display.
speedSlider.setProgress(speedToProgressValue(roundedSpeed)); // Update slider.
return null;
};
// Set listener for slider to update playback speed.
speedSlider.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (fromUser) {
// Convert from progress value to video playback speed.
userSelectedSpeed.apply(customPlaybackSpeedsMin + (progress / PROGRESS_BAR_VALUE_SCALE));
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {}
});
minusButton.setOnClickListener(v -> userSelectedSpeed.apply(
VideoInformation.getPlaybackSpeed() - 0.05f));
plusButton.setOnClickListener(v -> userSelectedSpeed.apply(
VideoInformation.getPlaybackSpeed() + 0.05f));
// Create GridLayout for preset speed buttons.
GridLayout gridLayout = new GridLayout(context);
gridLayout.setColumnCount(5); // 5 columns for speed buttons.
gridLayout.setAlignmentMode(GridLayout.ALIGN_BOUNDS);
gridLayout.setRowCount((int) Math.ceil(customPlaybackSpeeds.length / 5.0));
LinearLayout.LayoutParams gridParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
gridParams.setMargins(0, 0, 0, 0); // No margins around GridLayout.
gridLayout.setLayoutParams(gridParams);
// For all buttons show at least 1 zero in decimal (2 -> "2.0").
speedFormatter.setMinimumFractionDigits(1);
// Add buttons for each preset playback speed.
for (float speed : customPlaybackSpeeds) {
// Container for button and optional label.
FrameLayout buttonContainer = new FrameLayout(context);
// Set layout parameters for each grid cell.
GridLayout.LayoutParams containerParams = new GridLayout.LayoutParams();
containerParams.width = 0; // Equal width for columns.
containerParams.columnSpec = GridLayout.spec(GridLayout.UNDEFINED, 1, 1f);
containerParams.setMargins(dip5, 0, dip5, 0); // Button margins.
containerParams.height = dip60; // Fixed height for button and label.
buttonContainer.setLayoutParams(containerParams);
// Create speed button.
Button speedButton = new Button(context, null, 0);
speedButton.setText(speedFormatter.format(speed)); // Do not use 'x' speed format.
speedButton.setTextColor(ThemeHelper.getForegroundColor());
speedButton.setTextSize(12);
speedButton.setAllCaps(false);
speedButton.setGravity(Gravity.CENTER);
ShapeDrawable buttonBackground = new ShapeDrawable(new RoundRectShape(
createCornerRadii(20), null, null));
buttonBackground.getPaint().setColor(getAdjustedBackgroundColor(false));
speedButton.setBackground(buttonBackground);
speedButton.setPadding(dip5, dip5, dip5, dip5);
// Center button vertically and stretch horizontally in container.
FrameLayout.LayoutParams buttonParams = new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.MATCH_PARENT, dip32, Gravity.CENTER);
speedButton.setLayoutParams(buttonParams);
// Add speed buttons view to buttons container layout.
buttonContainer.addView(speedButton);
// Add "Normal" label for 1.0x speed.
if (speed == 1.0f) {
TextView normalLabel = new TextView(context);
// Use same 'Normal' string as stock YouTube.
normalLabel.setText(str("normal_playback_rate_label"));
normalLabel.setTextColor(ThemeHelper.getForegroundColor());
normalLabel.setTextSize(10);
normalLabel.setGravity(Gravity.CENTER);
FrameLayout.LayoutParams labelParams = new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);
labelParams.bottomMargin = 0; // Position label below button.
normalLabel.setLayoutParams(labelParams);
buttonContainer.addView(normalLabel);
}
speedButton.setOnClickListener(v -> userSelectedSpeed.apply(speed));
gridLayout.addView(buttonContainer);
}
// Add in-rows speed buttons layout to main layout.
mainLayout.addView(gridLayout);
// Wrap mainLayout in another LinearLayout for side margins.
LinearLayout wrapperLayout = new LinearLayout(context);
wrapperLayout.setOrientation(LinearLayout.VERTICAL);
wrapperLayout.setPadding(dip8, 0, dip8, 0); // 8dp side margins.
wrapperLayout.addView(mainLayout);
dialog.setContentView(wrapperLayout);
// Configure dialog window to appear at the bottom.
Window window = dialog.getWindow();
if (window != null) {
WindowManager.LayoutParams params = window.getAttributes();
params.gravity = Gravity.BOTTOM; // Position at bottom of screen.
params.y = dip6; // 6dp margin from bottom.
// In landscape, use the smaller dimension (height) as portrait width.
int portraitWidth = context.getResources().getDisplayMetrics().widthPixels;
if (context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
portraitWidth = Math.min(
portraitWidth,
context.getResources().getDisplayMetrics().heightPixels);
}
params.width = portraitWidth; // Use portrait width.
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
window.setAttributes(params);
window.setBackgroundDrawable(null); // Remove default dialog background.
}
// Create observer for PlayerType changes.
Function1<PlayerType, Unit> playerTypeObserver = new Function1<>() {
@Override
public Unit invoke(PlayerType type) {
Dialog current = currentDialog.get();
if (current == null || !current.isShowing()) {
// Should never happen.
PlayerType.getOnChange().removeObserver(this);
Logger.printException(() -> "Removing player type listener as dialog is null or closed");
} else if (type == PlayerType.WATCH_WHILE_PICTURE_IN_PICTURE) {
current.dismiss();
Logger.printDebug(() -> "Playback speed dialog dismissed due to PiP mode");
}
return Unit.INSTANCE;
}
};
// Add observer to dismiss dialog when entering PiP mode.
PlayerType.getOnChange().addObserver(playerTypeObserver);
// Remove observer when dialog is dismissed.
dialog.setOnDismissListener(d -> {
PlayerType.getOnChange().removeObserver(playerTypeObserver);
Logger.printDebug(() -> "PlayerType observer removed on dialog dismiss");
});
// Apply slide-in animation when showing the dialog.
final int fadeDurationFast = Utils.getResourceInteger("fade_duration_fast");
Animation slideInABottomAnimation = Utils.getResourceAnimation("slide_in_bottom");
slideInABottomAnimation.setDuration(fadeDurationFast);
mainLayout.startAnimation(slideInABottomAnimation);
dialog.show(); // Display the dialog.
}
/**
* Creates an array of corner radii for a rounded rectangle shape.
*
* @param dp The radius in density-independent pixels (dp) to apply to all corners.
* @return An array of eight float values representing the corner radii
* (top-left, top-right, bottom-right, bottom-left).
*/
private static float[] createCornerRadii(float dp) {
final float radius = dipToPixels(dp);
return new float[]{radius, radius, radius, radius, radius, radius, radius, radius};
}
/**
* @param speed The playback speed value to format.
* @return A string representation of the speed with 'x' (e.g. "1.25x" or "1.00x").
*/
private static String formatSpeedStringX(float speed, int minimumFractionDigits) {
speedFormatter.setMinimumFractionDigits(minimumFractionDigits);
return speedFormatter.format(speed) + 'x';
}
/**
* @return user speed converted to a value for {@link SeekBar#setProgress(int)}.
*/
private static int speedToProgressValue(float speed) {
return (int) ((speed - customPlaybackSpeedsMin) * PROGRESS_BAR_VALUE_SCALE);
}
/**
* Rounds the given playback speed to the nearest 0.05 increment and ensures it is within valid bounds.
*
* @param speed The playback speed to round.
* @return The rounded speed, constrained to the specified bounds.
*/
private static float roundSpeedToNearestIncrement(float speed) {
// Round to nearest 0.05 speed.
final float roundedSpeed = Math.round(speed / 0.05f) * 0.05f;
return Utils.clamp(roundedSpeed, 0.05f, PLAYBACK_SPEED_MAXIMUM);
}
/**
* Adjusts the background color based on the current theme.
*
* @param isHandleBar If true, applies a stronger darkening factor (0.9) for the handle bar in light theme;
* if false, applies a standard darkening factor (0.95) for other elements in light theme.
* @return A modified background color, lightened by 20% for dark themes or darkened by 5% (or 10% for handle bar)
* for light themes to ensure visual contrast.
*/
public static int getAdjustedBackgroundColor(boolean isHandleBar) {
final int baseColor = ThemeHelper.getDialogBackgroundColor();
float darkThemeFactor = isHandleBar ? 1.25f : 1.115f; // 1.25f for handleBar, 1.115f for others in dark theme.
float lightThemeFactor = isHandleBar ? 0.9f : 0.95f; // 0.9f for handleBar, 0.95f for others in light theme.
return ThemeHelper.isDarkTheme()
? ThemeHelper.adjustColorBrightness(baseColor, darkThemeFactor) // Lighten for dark theme.
: ThemeHelper.adjustColorBrightness(baseColor, lightThemeFactor); // Darken for light theme.
}
}
/**
* Custom Drawable for rendering outlined plus and minus symbols on buttons.
*/
class OutlineSymbolDrawable extends Drawable {
private final boolean isPlus; // Determines if the symbol is a plus or minus.
private final Paint paint;
OutlineSymbolDrawable(boolean isPlus) {
this.isPlus = isPlus;
paint = new Paint(Paint.ANTI_ALIAS_FLAG); // Enable anti-aliasing for smooth rendering.
paint.setColor(ThemeHelper.getForegroundColor());
paint.setStyle(Paint.Style.STROKE); // Use stroke style for outline.
paint.setStrokeWidth(dipToPixels(1)); // 1dp stroke width.
}
@Override
public void draw(Canvas canvas) {
Rect bounds = getBounds();
final int width = bounds.width();
final int height = bounds.height();
final float centerX = width / 2f; // Center X coordinate.
final float centerY = height / 2f; // Center Y coordinate.
final float size = Math.min(width, height) * 0.25f; // Symbol size is 25% of button dimensions.
// Draw horizontal line for both plus and minus symbols.
canvas.drawLine(centerX - size, centerY, centerX + size, centerY, paint);
if (isPlus) {
// Draw vertical line for plus symbol.
canvas.drawLine(centerX, centerY - size, centerX, centerY + size, paint);
}
}
@Override
public void setAlpha(int alpha) {
paint.setAlpha(alpha);
}
@Override
public void setColorFilter(ColorFilter colorFilter) {
paint.setColorFilter(colorFilter);
}
@Override
public int getOpacity() {
return PixelFormat.TRANSLUCENT;
}
}

View File

@@ -33,10 +33,10 @@ public final class RememberPlaybackSpeedPatch {
public static void userSelectedPlaybackSpeed(float playbackSpeed) {
try {
if (Settings.REMEMBER_PLAYBACK_SPEED_LAST_SELECTED.get()) {
// With the 0.05x menu, if the speed is set by integrations to higher than 2.0x
// With the 0.05x menu, if the speed is set by a patch to higher than 2.0x
// then the menu will allow increasing without bounds but the max speed is
// still capped to under 8.0x.
playbackSpeed = Math.min(playbackSpeed, CustomPlaybackSpeedPatch.PLAYBACK_SPEED_MAXIMUM - 0.05f);
// still capped to 8.0x.
playbackSpeed = Math.min(playbackSpeed, CustomPlaybackSpeedPatch.PLAYBACK_SPEED_MAXIMUM);
// Prevent toast spamming if using the 0.05x adjustments.
// Show exactly one toast after the user stops interacting with the speed menu.
@@ -57,7 +57,7 @@ public final class RememberPlaybackSpeedPatch {
}
Settings.PLAYBACK_SPEED_DEFAULT.save(finalPlaybackSpeed);
Utils.showToastLong(str("revanced_remember_playback_speed_toast", (finalPlaybackSpeed + "x")));
Utils.showToastShort(str("revanced_remember_playback_speed_toast", (finalPlaybackSpeed + "x")));
}, TOAST_DELAY_MILLISECONDS);
}
} catch (Exception ex) {

View File

@@ -2,6 +2,7 @@ package app.revanced.extension.youtube.patches.theme;
import static app.revanced.extension.shared.StringRef.str;
import static app.revanced.extension.shared.Utils.clamp;
import static app.revanced.extension.youtube.patches.theme.ThemePatch.SplashScreenAnimationStyle;
import android.content.res.Resources;
import android.graphics.Color;
@@ -60,7 +61,7 @@ public final class SeekbarColorPatch {
* this is the color value of {@link Settings#SEEKBAR_CUSTOM_COLOR_PRIMARY}.
* Otherwise this is {@link #ORIGINAL_SEEKBAR_COLOR}.
*/
private static int customSeekbarColor = ORIGINAL_SEEKBAR_COLOR;
private static final int customSeekbarColor;
/**
* Custom seekbar hue, saturation, and brightness values.
@@ -77,24 +78,25 @@ public final class SeekbarColorPatch {
Color.colorToHSV(ORIGINAL_SEEKBAR_COLOR, hsv);
ORIGINAL_SEEKBAR_COLOR_BRIGHTNESS = hsv[2];
if (SEEKBAR_CUSTOM_COLOR_ENABLED) {
loadCustomSeekbarColor();
}
customSeekbarColor = SEEKBAR_CUSTOM_COLOR_ENABLED
? loadCustomSeekbarColor()
: ORIGINAL_SEEKBAR_COLOR;
}
private static void loadCustomSeekbarColor() {
private static int loadCustomSeekbarColor() {
try {
customSeekbarColor = Color.parseColor(Settings.SEEKBAR_CUSTOM_COLOR_PRIMARY.get());
Color.colorToHSV(customSeekbarColor, customSeekbarColorHSV);
customSeekbarColorGradient[0] = customSeekbarColor;
final int color = Color.parseColor(Settings.SEEKBAR_CUSTOM_COLOR_PRIMARY.get());
Color.colorToHSV(color, customSeekbarColorHSV);
customSeekbarColorGradient[0] = color;
customSeekbarColorGradient[1] = Color.parseColor(Settings.SEEKBAR_CUSTOM_COLOR_ACCENT.get());
return color;
} catch (Exception ex) {
Utils.showToastShort(str("revanced_seekbar_custom_color_invalid"));
Settings.SEEKBAR_CUSTOM_COLOR_PRIMARY.resetToDefault();
Settings.SEEKBAR_CUSTOM_COLOR_ACCENT.resetToDefault();
loadCustomSeekbarColor();
return loadCustomSeekbarColor();
}
}
@@ -114,6 +116,7 @@ public final class SeekbarColorPatch {
: (int) channel3Bits;
}
@SuppressWarnings("SameParameterValue")
private static String get9BitStyleIdentifier(int color24Bit) {
final int r3 = colorChannelTo3Bits(Color.red(color24Bit));
final int g3 = colorChannelTo3Bits(Color.green(color24Bit));
@@ -171,23 +174,15 @@ public final class SeekbarColorPatch {
*/
public static void setSplashAnimationLottie(LottieAnimationView view, int resourceId) {
try {
if (!SEEKBAR_CUSTOM_COLOR_ENABLED) {
SplashScreenAnimationStyle animationStyle = Settings.SPLASH_SCREEN_ANIMATION_STYLE.get();
if (!SEEKBAR_CUSTOM_COLOR_ENABLED
// Black and white animations cannot use color replacements.
|| animationStyle == SplashScreenAnimationStyle.FPS_30_BLACK_AND_WHITE
|| animationStyle == SplashScreenAnimationStyle.FPS_60_BLACK_AND_WHITE) {
view.patch_setAnimation(resourceId);
return;
}
//noinspection ConstantConditions
if (false) { // Set true to force slow animation for development.
final int longAnimation = Utils.getResourceIdentifier(
Utils.isDarkModeEnabled()
? "startup_animation_5s_30fps_dark"
: "startup_animation_5s_30fps_light",
"raw");
if (longAnimation != 0) {
resourceId = longAnimation;
}
}
// Must specify primary key name otherwise the morphing YT logo color is also changed.
String originalKey = "\"k\":";
String originalPrimary = originalKey + "[1,0,0.2,1]";
@@ -197,21 +192,16 @@ public final class SeekbarColorPatch {
String replacementAccent = originalKey + getColorStringArray(customSeekbarColorGradient[1]);
String json = loadRawResourceAsString(resourceId);
if (json == null) {
return; // Should never happen.
}
String replacement = json
.replace(originalPrimary, replacementPrimary)
.replace(originalAccent, replacementAccent);
if (BaseSettings.DEBUG.get() && (!json.contains(originalPrimary) || !json.contains(originalAccent))) {
String jsonFinal = json;
Logger.printException(() -> "Could not replace launch animation colors: " + jsonFinal);
Logger.printException(() -> "Could not replace splash animation colors: " + json);
}
Logger.printDebug(() -> "Replacing Lottie animation JSON");
json = json.replace(originalPrimary, replacementPrimary);
json = json.replace(originalAccent, replacementAccent);
// cacheKey is not needed since the animation will not be reused.
view.patch_setAnimation(new ByteArrayInputStream(json.getBytes()), null);
view.patch_setAnimation(new ByteArrayInputStream(replacement.getBytes()), null);
} catch (Exception ex) {
Logger.printException(() -> "setSplashAnimationLottie failure", ex);
}
@@ -232,8 +222,7 @@ public final class SeekbarColorPatch {
Scanner scanner = new Scanner(inputStream, StandardCharsets.UTF_8.name()).useDelimiter("\\A")) {
return scanner.next();
} catch (IOException e) {
Logger.printException(() -> "Could not load resource: " + resourceId);
return null;
throw new IllegalStateException("Could not load resource: " + resourceId);
}
}

View File

@@ -1,11 +1,49 @@
package app.revanced.extension.youtube.patches.theme;
import static app.revanced.extension.youtube.patches.theme.ThemePatch.SplashScreenAnimationStyle.styleFromOrdinal;
import androidx.annotation.Nullable;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
import app.revanced.extension.youtube.ThemeHelper;
import app.revanced.extension.youtube.settings.Settings;
@SuppressWarnings("unused")
public class ThemePatch {
public enum SplashScreenAnimationStyle {
DEFAULT(0),
FPS_60_ONE_SECOND(1),
FPS_60_TWO_SECOND(2),
FPS_60_FIVE_SECOND(3),
FPS_60_BLACK_AND_WHITE(4),
FPS_30_ONE_SECOND(5),
FPS_30_TWO_SECOND(6),
FPS_30_FIVE_SECOND(7),
FPS_30_BLACK_AND_WHITE(8);
// There exists a 10th json style used as the switch statement default,
// but visually it is identical to 60fps one second.
@Nullable
static SplashScreenAnimationStyle styleFromOrdinal(int style) {
// Alternatively can return using values()[style]
for (SplashScreenAnimationStyle value : values()) {
if (value.style == style) {
return value;
}
}
return null;
}
final int style;
SplashScreenAnimationStyle(int style) {
this.style = style;
}
}
// color constants used in relation with litho components
private static final int[] WHITE_VALUES = {
-1, // comments chip background
@@ -58,4 +96,22 @@ public class ThemePatch {
public static boolean gradientLoadingScreenEnabled(boolean original) {
return GRADIENT_LOADING_SCREEN_ENABLED;
}
/**
* Injection point.
*/
public static int getLoadingScreenType(int original) {
SplashScreenAnimationStyle style = Settings.SPLASH_SCREEN_ANIMATION_STYLE.get();
if (style == SplashScreenAnimationStyle.DEFAULT) {
return original;
}
final int replacement = style.style;
if (original != replacement) {
Logger.printDebug(() -> "Overriding splash screen style from: "
+ styleFromOrdinal(original) + " to: " + style);
}
return replacement;
}
}

View File

@@ -21,14 +21,12 @@ import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerT
import static app.revanced.extension.youtube.patches.OpenShortsInRegularPlayerPatch.ShortsPlayerType;
import static app.revanced.extension.youtube.patches.SeekbarThumbnailsPatch.SeekbarThumbnailsHighQualityAvailability;
import static app.revanced.extension.youtube.patches.components.PlayerFlyoutMenuItemsFilter.HideAudioFlyoutMenuAvailability;
import static app.revanced.extension.youtube.patches.theme.ThemePatch.SplashScreenAnimationStyle;
import static app.revanced.extension.youtube.sponsorblock.objects.CategoryBehaviour.IGNORE;
import static app.revanced.extension.youtube.sponsorblock.objects.CategoryBehaviour.MANUAL_SKIP;
import static app.revanced.extension.youtube.sponsorblock.objects.CategoryBehaviour.SKIP_AUTOMATICALLY;
import static app.revanced.extension.youtube.sponsorblock.objects.CategoryBehaviour.SKIP_AUTOMATICALLY_ONCE;
import app.revanced.extension.shared.settings.preference.SharedPrefCategory;
import app.revanced.extension.youtube.swipecontrols.SwipeControlsConfigurationProvider.SwipeOverlayStyle;
import android.graphics.Color;
import app.revanced.extension.shared.Logger;
@@ -40,12 +38,14 @@ import app.revanced.extension.shared.settings.IntegerSetting;
import app.revanced.extension.shared.settings.LongSetting;
import app.revanced.extension.shared.settings.Setting;
import app.revanced.extension.shared.settings.StringSetting;
import app.revanced.extension.shared.settings.preference.SharedPrefCategory;
import app.revanced.extension.youtube.patches.AlternativeThumbnailsPatch.DeArrowAvailability;
import app.revanced.extension.youtube.patches.AlternativeThumbnailsPatch.StillImagesAvailability;
import app.revanced.extension.youtube.patches.AlternativeThumbnailsPatch.ThumbnailOption;
import app.revanced.extension.youtube.patches.AlternativeThumbnailsPatch.ThumbnailStillTime;
import app.revanced.extension.youtube.patches.MiniplayerPatch;
import app.revanced.extension.youtube.sponsorblock.SponsorBlockSettings;
import app.revanced.extension.youtube.swipecontrols.SwipeControlsConfigurationProvider.SwipeOverlayStyle;
public class Settings extends BaseSettings {
// Video
@@ -63,7 +63,7 @@ public class Settings extends BaseSettings {
public static final BooleanSetting CUSTOM_SPEED_MENU = new BooleanSetting("revanced_custom_speed_menu", TRUE);
public static final FloatSetting PLAYBACK_SPEED_DEFAULT = new FloatSetting("revanced_playback_speed_default", -2.0f);
public static final StringSetting CUSTOM_PLAYBACK_SPEEDS = new StringSetting("revanced_custom_playback_speeds",
"0.25\n0.5\n0.75\n0.9\n0.95\n1.0\n1.05\n1.1\n1.25\n1.5\n1.75\n2.0\n3.0\n4.0\n5.0", true);
"0.25\n0.5\n0.75\n1.0\n1.25\n1.5\n1.75\n2.0\n2.5\n3.0\n4.0\n5.0\n6.0\n7.0\n8.0", true);
// Audio
public static final BooleanSetting FORCE_ORIGINAL_AUDIO = new BooleanSetting("revanced_force_original_audio", FALSE, new ForceOriginalAudioAvailability());
@@ -179,7 +179,7 @@ public class Settings extends BaseSettings {
public static final BooleanSetting HIDE_COMMENTS_AI_SUMMARY = new BooleanSetting("revanced_hide_comments_ai_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_TIMESTAMP_BUTTON = new BooleanSetting("revanced_hide_comments_timestamp_button", FALSE);
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);
@@ -226,6 +226,8 @@ public class Settings extends BaseSettings {
public static final EnumSetting<FormFactor> CHANGE_FORM_FACTOR = new EnumSetting<>("revanced_change_form_factor", FormFactor.DEFAULT, true, "revanced_change_form_factor_user_dialog_message");
public static final BooleanSetting BYPASS_IMAGE_REGION_RESTRICTIONS = new BooleanSetting("revanced_bypass_image_region_restrictions", FALSE, true);
public static final BooleanSetting GRADIENT_LOADING_SCREEN = new BooleanSetting("revanced_gradient_loading_screen", FALSE, true);
public static final EnumSetting<SplashScreenAnimationStyle> SPLASH_SCREEN_ANIMATION_STYLE = new EnumSetting<>("splash_screen_animation_style", SplashScreenAnimationStyle.FPS_60_ONE_SECOND, true);
public static final BooleanSetting REMOVE_VIEWER_DISCRETION_DIALOG = new BooleanSetting("revanced_remove_viewer_discretion_dialog", FALSE,
"revanced_remove_viewer_discretion_dialog_user_dialog_message");
public static final BooleanSetting SPOOF_APP_VERSION = new BooleanSetting("revanced_spoof_app_version", FALSE, true, "revanced_spoof_app_version_user_dialog_message");
@@ -275,6 +277,7 @@ public class Settings extends BaseSettings {
public static final BooleanSetting HIDE_SHORTS_SEARCH = new BooleanSetting("revanced_hide_shorts_search", FALSE);
public static final BooleanSetting HIDE_SHORTS_SEARCH_SUGGESTIONS = new BooleanSetting("revanced_hide_shorts_search_suggestions", TRUE);
public static final BooleanSetting HIDE_SHORTS_SHARE_BUTTON = new BooleanSetting("revanced_hide_shorts_share_button", FALSE);
public static final BooleanSetting HIDE_SHORTS_PREVIEW_COMMENT = new BooleanSetting("revanced_hide_shorts_preview_comment", TRUE);
public static final BooleanSetting HIDE_SHORTS_SHOP_BUTTON = new BooleanSetting("revanced_hide_shorts_shop_button", TRUE);
public static final BooleanSetting HIDE_SHORTS_SOUND_BUTTON = new BooleanSetting("revanced_hide_shorts_sound_button", FALSE);
public static final BooleanSetting HIDE_SHORTS_SOUND_METADATA_LABEL = new BooleanSetting("revanced_hide_shorts_sound_metadata_label", FALSE);

View File

@@ -5,9 +5,13 @@ 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.patches.playback.speed.CustomPlaybackSpeedPatch;
import app.revanced.extension.youtube.settings.Settings;
import static app.revanced.extension.shared.StringRef.str;
import static app.revanced.extension.shared.Utils.showToastShort;
@SuppressWarnings("unused")
public class PlaybackSpeedDialogButton {
@Nullable
@@ -23,8 +27,27 @@ public class PlaybackSpeedDialogButton {
"revanced_playback_speed_dialog_button",
"revanced_playback_speed_dialog_button_placeholder",
Settings.PLAYBACK_SPEED_DIALOG_BUTTON::get,
view -> CustomPlaybackSpeedPatch.showOldPlaybackSpeedMenu(),
null
view -> {
try {
CustomPlaybackSpeedPatch.showModernCustomPlaybackSpeedDialog(view.getContext());
} catch (Exception ex) {
Logger.printException(() -> "speed button onClick failure", ex);
}
},
view -> {
try {
final float speed = (!Settings.REMEMBER_PLAYBACK_SPEED_LAST_SELECTED.get() ||
VideoInformation.getPlaybackSpeed() == Settings.PLAYBACK_SPEED_DEFAULT.get())
? 1.0f
: Settings.PLAYBACK_SPEED_DEFAULT.get();
VideoInformation.overridePlaybackSpeed(speed);
showToastShort(str("revanced_custom_playback_speeds_reset_toast", (speed + "x")));
} catch (Exception ex) {
Logger.printException(() -> "speed button reset failure", ex);
}
return true;
}
);
} catch (Exception ex) {
Logger.printException(() -> "initializeButton failure", ex);

View File

@@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M
org.gradle.parallel = true
android.useAndroidX = true
kotlin.code.style = official
version = 5.26.0-dev.2
version = 5.27.0-dev.2

58
package-lock.json generated
View File

@@ -9,7 +9,7 @@
"@semantic-release/changelog": "^6.0.3",
"@semantic-release/git": "^10.0.1",
"gradle-semantic-release-plugin": "^1.10.1",
"semantic-release": "^24.2.1"
"semantic-release": "^24.2.5"
}
},
"node_modules/@babel/code-frame": {
@@ -1964,9 +1964,9 @@
}
},
"node_modules/chalk": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
"integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
"version": "5.4.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
"integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3460,9 +3460,9 @@
"license": "ISC"
},
"node_modules/marked": {
"version": "12.0.2",
"resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz",
"integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==",
"version": "15.0.12",
"resolved": "https://registry.npmjs.org/marked/-/marked-15.0.12.tgz",
"integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==",
"dev": true,
"license": "MIT",
"bin": {
@@ -3473,24 +3473,38 @@
}
},
"node_modules/marked-terminal": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.1.0.tgz",
"integrity": "sha512-+pvwa14KZL74MVXjYdPR3nSInhGhNvPce/3mqLVZT2oUvt654sL1XImFuLZ1pkA866IYZ3ikDTOFUIC7XzpZZg==",
"version": "7.3.0",
"resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.3.0.tgz",
"integrity": "sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==",
"dev": true,
"license": "MIT",
"dependencies": {
"ansi-escapes": "^7.0.0",
"chalk": "^5.3.0",
"ansi-regex": "^6.1.0",
"chalk": "^5.4.1",
"cli-highlight": "^2.1.11",
"cli-table3": "^0.6.5",
"node-emoji": "^2.1.3",
"supports-hyperlinks": "^3.0.0"
"node-emoji": "^2.2.0",
"supports-hyperlinks": "^3.1.0"
},
"engines": {
"node": ">=16.0.0"
},
"peerDependencies": {
"marked": ">=1 <14"
"marked": ">=1 <16"
}
},
"node_modules/marked-terminal/node_modules/ansi-regex": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
"integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/ansi-regex?sponsor=1"
}
},
"node_modules/meow": {
@@ -3607,9 +3621,9 @@
"license": "MIT"
},
"node_modules/node-emoji": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz",
"integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==",
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz",
"integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6760,9 +6774,9 @@
"license": "MIT"
},
"node_modules/semantic-release": {
"version": "24.2.1",
"resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-24.2.1.tgz",
"integrity": "sha512-z0/3cutKNkLQ4Oy0HTi3lubnjTsdjjgOqmxdPjeYWe6lhFqUPfwslZxRHv3HDZlN4MhnZitb9SLihDkZNxOXfQ==",
"version": "24.2.5",
"resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-24.2.5.tgz",
"integrity": "sha512-9xV49HNY8C0/WmPWxTlaNleiXhWb//qfMzG2c5X8/k7tuWcu8RssbuS+sujb/h7PiWSXv53mrQvV9hrO9b7vuQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6784,8 +6798,8 @@
"hosted-git-info": "^8.0.0",
"import-from-esm": "^2.0.0",
"lodash-es": "^4.17.21",
"marked": "^12.0.0",
"marked-terminal": "^7.0.0",
"marked": "^15.0.0",
"marked-terminal": "^7.3.0",
"micromatch": "^4.0.2",
"p-each-series": "^3.0.0",
"p-reduce": "^3.0.0",

View File

@@ -4,6 +4,6 @@
"@semantic-release/changelog": "^6.0.3",
"@semantic-release/git": "^10.0.1",
"gradle-semantic-release-plugin": "^1.10.1",
"semantic-release": "^24.2.1"
"semantic-release": "^24.2.5"
}
}

View File

@@ -575,6 +575,10 @@ public final class app/revanced/patches/reddit/customclients/sync/syncforreddit/
public static final fun getFixSLinksPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/reddit/customclients/sync/syncforreddit/fix/thumbnail/FixPostThumbnailsPatchKt {
public static final fun getFixPostThumbnailsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/reddit/customclients/sync/syncforreddit/fix/user/UseUserEndpointPatchKt {
public static final fun getUseUserEndpointPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
@@ -873,6 +877,10 @@ public final class app/revanced/patches/soundcloud/offlinesync/EnableOfflineSync
public static final fun getEnableOfflineSync ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/spotify/layout/hide/createbutton/HideCreateButtonPatchKt {
public static final fun getHideCreateButtonPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/spotify/layout/theme/CustomThemePatchKt {
public static final fun getCustomThemePatch ()Lapp/revanced/patcher/patch/ResourcePatch;
}

View File

@@ -0,0 +1,12 @@
package app.revanced.patches.reddit.customclients.sync.syncforreddit.fix.thumbnail
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
internal val customImageViewLoadFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC)
parameters("Ljava/lang/String;", "Z", "Z", "I", "I")
custom { _, classDef ->
classDef.endsWith("CustomImageView;")
}
}

View File

@@ -0,0 +1,31 @@
package app.revanced.patches.reddit.customclients.sync.syncforreddit.fix.thumbnail
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch
@Suppress("unused")
val fixPostThumbnailsPatch = bytecodePatch(
name = "Fix post thumbnails",
description = "Fixes loading post thumbnails by correcting their URLs.",
) {
compatibleWith(
"com.laurencedawson.reddit_sync",
"com.laurencedawson.reddit_sync.pro",
"com.laurencedawson.reddit_sync.dev"
)
// Image URLs contain escaped ampersands (&amp;), let's replace these with unescaped ones (&).
execute {
customImageViewLoadFingerprint.method.addInstructions(
0,
"""
# url = url.replace("&amp;", "&");
const-string v0, "&amp;"
const-string v1, "&"
invoke-virtual { p1, v0, v1 }, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object p1
"""
)
}
}

View File

@@ -0,0 +1,28 @@
package app.revanced.patches.spotify.layout.hide.createbutton
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 navigationBarItemSetClassFingerprint = fingerprint {
strings("NavigationBarItemSet(")
}
internal val navigationBarItemSetConstructorFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
// Make sure the method checks whether navigation bar items are null before adding them.
// If this is not true, then we cannot patch the method and potentially transform the parameters into null.
opcodes(Opcode.IF_EQZ, Opcode.INVOKE_VIRTUAL)
custom { method, _ ->
method.indexOfFirstInstruction {
getReference<MethodReference>()?.name == "add"
} >= 0
}
}
internal val oldNavigationBarAddItemFingerprint = fingerprint {
strings("Bottom navigation tabs exceeds maximum of 5 tabs")
}

View File

@@ -0,0 +1,110 @@
package app.revanced.patches.spotify.layout.hide.createbutton
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.util.smali.ExternalLabel
import app.revanced.patches.spotify.misc.extension.sharedExtensionPatch
import app.revanced.patches.spotify.shared.IS_SPOTIFY_LEGACY_APP_TARGET
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionOrThrow
import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
import java.util.logging.Logger
private const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/spotify/layout/hide/createbutton/HideCreateButtonPatch;"
@Suppress("unused")
val hideCreateButtonPatch = bytecodePatch(
name = "Hide Create button",
description = "Hides the \"Create\" button in the navigation bar."
) {
compatibleWith("com.spotify.music")
dependsOn(sharedExtensionPatch)
execute {
if (IS_SPOTIFY_LEGACY_APP_TARGET) {
Logger.getLogger(this::class.java.name).warning(
"Create button does not exist in legacy app target. No changes applied."
)
return@execute
}
val oldNavigationBarAddItemMethod = oldNavigationBarAddItemFingerprint.originalMethodOrNull
// Only throw the fingerprint error when oldNavigationBarAddItemMethod does not exist.
val navigationBarItemSetClassDef = if (oldNavigationBarAddItemMethod == null) {
navigationBarItemSetClassFingerprint.originalClassDef
} else {
navigationBarItemSetClassFingerprint.originalClassDefOrNull
}
if (navigationBarItemSetClassDef != null) {
// Main patch for newest and most versions.
// The NavigationBarItemSet constructor accepts multiple parameters which represent each navigation bar item.
// Each item is manually checked whether it is not null and then added to a LinkedHashSet.
// Since the order of the items can differ, we are required to check every parameter to see whether it is the
// Create button. So, for every parameter passed to the method, invoke our extension method and overwrite it
// to null in case it is the Create button.
navigationBarItemSetConstructorFingerprint.match(navigationBarItemSetClassDef).method.apply {
// Add 1 to the index because the first parameter register is `this`.
val parameterTypesWithRegister = parameterTypes.mapIndexed { index, parameterType ->
parameterType to (index + 1)
}
val returnNullIfIsCreateButtonDescriptor =
"$EXTENSION_CLASS_DESCRIPTOR->returnNullIfIsCreateButton(Ljava/lang/Object;)Ljava/lang/Object;"
parameterTypesWithRegister.reversed().forEach { (parameterType, parameterRegister) ->
addInstructions(
0,
"""
invoke-static { p$parameterRegister }, $returnNullIfIsCreateButtonDescriptor
move-result-object p$parameterRegister
check-cast p$parameterRegister, $parameterType
"""
)
}
}
}
if (oldNavigationBarAddItemMethod != null) {
// In case an older version of the app is being patched, hook the old method which adds navigation bar items.
// Return null early if the navigation bar item title resource id is the old Create button title resource id.
oldNavigationBarAddItemFingerprint.methodOrNull?.apply {
val getNavigationBarItemTitleStringIndex = indexOfFirstInstructionOrThrow {
val reference = getReference<MethodReference>()
reference?.definingClass == "Landroid/content/res/Resources;" && reference.name == "getString"
}
// This register is a parameter register, so it can be used at the start of the method when adding
// the new instructions.
val oldNavigationBarItemTitleResIdRegister =
getInstruction<FiveRegisterInstruction>(getNavigationBarItemTitleStringIndex).registerD
// The instruction where the normal method logic starts.
val firstInstruction = getInstruction(0)
val isOldCreateButtonDescriptor =
"$EXTENSION_CLASS_DESCRIPTOR->isOldCreateButton(I)Z"
addInstructionsWithLabels(
0,
"""
invoke-static { v$oldNavigationBarItemTitleResIdRegister }, $isOldCreateButtonDescriptor
move-result v0
# If this navigation bar item is not the Create button, jump to the normal method logic.
if-eqz v0, :normal-method-logic
# Return null early because this method return value is a BottomNavigationItemView.
const/4 v0, 0
return-object v0
""",
ExternalLabel("normal-method-logic", firstInstruction)
)
}
}
}
}

View File

@@ -2,65 +2,19 @@ package app.revanced.patches.spotify.layout.theme
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.fingerprint
import app.revanced.patcher.patch.booleanOption
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.patch.resourcePatch
import app.revanced.patcher.patch.stringOption
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
import app.revanced.patches.spotify.misc.extension.IS_SPOTIFY_LEGACY_APP_TARGET
import app.revanced.patches.spotify.misc.extension.sharedExtensionPatch
import app.revanced.patches.spotify.shared.IS_SPOTIFY_LEGACY_APP_TARGET
import app.revanced.util.*
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
import com.android.tools.smali.dexlib2.iface.reference.FieldReference
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
import org.w3c.dom.Element
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/spotify/layout/theme/CustomThemePatch;"
internal val spotifyBackgroundColor = stringOption(
key = "backgroundColor",
default = "@android:color/black",
title = "Primary background color",
description = "The background color. Can be a hex color or a resource reference.",
required = true,
)
internal val overridePlayerGradientColor = booleanOption(
key = "overridePlayerGradientColor",
default = false,
title = "Override player gradient color",
description = "Apply primary background color to the player gradient color, which changes dynamically with the song.",
required = false
)
internal val spotifyBackgroundColorSecondary = stringOption(
key = "backgroundColorSecondary",
default = "#FF121212",
title = "Secondary background color",
description =
"The secondary background color. (e.g. playlist list in home, player artist, song credits). Can be a hex color or a resource reference.",
required = true,
)
internal val spotifyAccentColor = stringOption(
key = "accentColor",
default = "#FF1ED760",
title = "Accent color",
description = "The accent color ('Spotify green' by default). Can be a hex color or a resource reference.",
required = true,
)
internal val spotifyAccentColorPressed = stringOption(
key = "accentColorPressed",
default = "#FF169C46",
title = "Pressed dark theme accent color",
description =
"The color when accented buttons are pressed, by default slightly darker than accent. Can be a hex color or a resource reference.",
required = true,
)
private val customThemeBytecodePatch = bytecodePatch {
dependsOn(sharedExtensionPatch)
@@ -71,60 +25,60 @@ private val customThemeBytecodePatch = bytecodePatch {
return@execute
}
fun MutableMethod.addColorChangeInstructions(literal: Long, colorString: String) {
val index = indexOfFirstLiteralInstructionOrThrow(literal)
val register = getInstruction<OneRegisterInstruction>(index).registerA
val colorSpaceUtilsClassDef = colorSpaceUtilsClassFingerprint.originalClassDef
// Hook a util method that converts ARGB to RGBA in the sRGB color space to replace hardcoded accent colors.
convertArgbToRgbaFingerprint.match(colorSpaceUtilsClassDef).method.apply {
addInstructions(
0,
"""
long-to-int p0, p0
invoke-static { p0 }, $EXTENSION_CLASS_DESCRIPTOR->replaceColor(I)I
move-result p0
int-to-long p0, p0
"""
)
}
// Lottie JSON parser method. It parses the JSON Lottie animation into its own class,
// including the solid color of it.
parseLottieJsonFingerprint.method.apply {
val invokeParseColorIndex = indexOfFirstInstructionOrThrow {
val reference = getReference<MethodReference>()
reference?.definingClass == "Landroid/graphics/Color;"
&& reference.name == "parseColor"
}
val parsedColorRegister = getInstruction<OneRegisterInstruction>(invokeParseColorIndex + 1).registerA
val replaceColorDescriptor = "$EXTENSION_CLASS_DESCRIPTOR->replaceColor(I)I"
addInstructions(
index + 1,
invokeParseColorIndex + 2,
"""
const-string v$register, "$colorString"
invoke-static { v$register }, $EXTENSION_CLASS_DESCRIPTOR->getThemeColor(Ljava/lang/String;)J
move-result-wide v$register
# Use invoke-static/range because the register number is too large.
invoke-static/range { v$parsedColorRegister .. v$parsedColorRegister }, $replaceColorDescriptor
move-result v$parsedColorRegister
"""
)
}
val encoreColorsClassName = with(encoreThemeFingerprint.originalMethod) {
// "Encore" colors are referenced right before the value of POSITIVE_INFINITY is returned.
// Begin the instruction find using the index of where POSITIVE_INFINITY is set into the register.
val positiveInfinityIndex = indexOfFirstLiteralInstructionOrThrow(
Float.POSITIVE_INFINITY
)
val encoreColorsFieldReferenceIndex = indexOfFirstInstructionReversedOrThrow(
positiveInfinityIndex,
Opcode.SGET_OBJECT
)
getInstruction(encoreColorsFieldReferenceIndex)
.getReference<FieldReference>()!!.definingClass
}
val encoreColorsConstructorFingerprint = fingerprint {
accessFlags(AccessFlags.STATIC, AccessFlags.CONSTRUCTOR)
custom { method, classDef ->
classDef.type == encoreColorsClassName &&
method.containsLiteralInstruction(PLAYLIST_BACKGROUND_COLOR_LITERAL)
// Lottie animated color parser.
parseAnimatedColorFingerprint.method.apply {
val invokeArgbIndex = indexOfFirstInstructionOrThrow {
val reference = getReference<MethodReference>()
reference?.definingClass == "Landroid/graphics/Color;"
&& reference.name == "argb"
}
val argbColorRegister = getInstruction<OneRegisterInstruction>(invokeArgbIndex + 1).registerA
addInstructions(
invokeArgbIndex + 2,
"""
invoke-static { v$argbColorRegister }, $EXTENSION_CLASS_DESCRIPTOR->replaceColor(I)I
move-result v$argbColorRegister
"""
)
}
val backgroundColor by spotifyBackgroundColor
val backgroundColorSecondary by spotifyBackgroundColorSecondary
encoreColorsConstructorFingerprint.method.apply {
addColorChangeInstructions(PLAYLIST_BACKGROUND_COLOR_LITERAL, backgroundColor!!)
addColorChangeInstructions(SHARE_MENU_BACKGROUND_COLOR_LITERAL, backgroundColorSecondary!!)
}
homeCategoryPillColorsFingerprint.method.addColorChangeInstructions(
HOME_CATEGORY_PILL_COLOR_LITERAL,
backgroundColorSecondary!!
)
settingsHeaderColorFingerprint.method.addColorChangeInstructions(
SETTINGS_HEADER_COLOR_LITERAL,
backgroundColorSecondary!!
)
}
}
@@ -138,11 +92,48 @@ val customThemePatch = resourcePatch(
dependsOn(customThemeBytecodePatch)
val backgroundColor by spotifyBackgroundColor()
val overridePlayerGradientColor by overridePlayerGradientColor()
val backgroundColorSecondary by spotifyBackgroundColorSecondary()
val accentColor by spotifyAccentColor()
val accentColorPressed by spotifyAccentColorPressed()
val backgroundColor by stringOption(
key = "backgroundColor",
default = "@android:color/black",
title = "Primary background color",
description = "The background color. Can be a hex color or a resource reference.",
required = true,
)
val overridePlayerGradientColor by booleanOption(
key = "overridePlayerGradientColor",
default = false,
title = "Override player gradient color",
description =
"Apply primary background color to the player gradient color, which changes dynamically with the song.",
required = false,
)
val backgroundColorSecondary by stringOption(
key = "backgroundColorSecondary",
default = "#FF121212",
title = "Secondary background color",
description = "The secondary background color. (e.g. playlist list in home, player artist, song credits). " +
"Can be a hex color or a resource reference.\",",
required = true,
)
val accentColor by stringOption(
key = "accentColor",
default = "#FF1ED760",
title = "Accent color",
description = "The accent color ('Spotify green' by default). Can be a hex color or a resource reference.",
required = true,
)
val accentColorPressed by stringOption(
key = "accentColorPressed",
default = "#FF1ABC54",
title = "Pressed accent color",
description = "The color when accented buttons are pressed, by default slightly darker than accent. " +
"Can be a hex color or a resource reference.",
required = true,
)
execute {
document("res/values/colors.xml").use { document ->
@@ -161,34 +152,41 @@ val customThemePatch = resourcePatch(
}
node.textContent = when (name) {
// Main background color.
"gray_7",
// Left sidebar background color in tablet mode.
"gray_10",
// Gradient next to user photo and "All" in home page.
"dark_base_background_base",
// Main background.
"gray_7",
// Left sidebar background in tablet mode.
"gray_10",
// "Add account", "Settings and privacy", "View Profile" left sidebar background.
// "Add account", "Settings and privacy", "View Profile" left sidebar background color.
"dark_base_background_elevated_base",
// Song/player gradient start/end color.
"bg_gradient_start_color", "bg_gradient_end_color",
// Login screen background and gradient start.
// Login screen background color and gradient start.
"sthlm_blk", "sthlm_blk_grad_start",
// Misc.
"image_placeholder_color",
-> backgroundColor
// Track credits, merch background in song player.
// "About the artist" background color in song player.
"gray_15",
// Track credits, merch background color in song player.
"track_credits_card_bg", "benefit_list_default_color", "merch_card_background",
// Playlist list background in home page.
"opacity_white_10",
// "About the artist" background in song player.
"gray_15",
// "What's New" pills background.
"dark_base_background_tinted_highlight"
-> backgroundColorSecondary
"dark_brightaccent_background_base", "dark_base_text_brightaccent", "green_light" -> accentColor
"dark_brightaccent_background_press" -> accentColorPressed
"dark_brightaccent_background_base",
"dark_base_text_brightaccent",
"green_light",
"spotify_green_157"
-> accentColor
"dark_brightaccent_background_press"
-> accentColorPressed
else -> continue
}
}
@@ -198,8 +196,8 @@ val customThemePatch = resourcePatch(
document("res/drawable/start_screen_gradient.xml").use { document ->
val gradientNode = document.getElementsByTagName("gradient").item(0) as Element
gradientNode.setAttribute("android:startColor", backgroundColor)
gradientNode.setAttribute("android:endColor", backgroundColor)
gradientNode.setAttribute("android:startColor", "@color/gray_7")
gradientNode.setAttribute("android:endColor", "@color/gray_7")
}
}
}

View File

@@ -4,30 +4,25 @@ import app.revanced.patcher.fingerprint
import app.revanced.util.containsLiteralInstruction
import com.android.tools.smali.dexlib2.AccessFlags
internal val encoreThemeFingerprint = fingerprint {
strings("Encore theme was not provided.") // Partial string match.
custom { method, _ ->
method.name == "invoke"
}
internal val colorSpaceUtilsClassFingerprint = fingerprint {
strings("The specified color must be encoded in an RGB color space.") // Partial string match.
}
internal const val PLAYLIST_BACKGROUND_COLOR_LITERAL = 0xFF121212
internal const val SHARE_MENU_BACKGROUND_COLOR_LITERAL = 0xFF1F1F1F
internal const val HOME_CATEGORY_PILL_COLOR_LITERAL = 0xFF333333
internal const val SETTINGS_HEADER_COLOR_LITERAL = 0xFF282828
internal val homeCategoryPillColorsFingerprint = fingerprint{
accessFlags(AccessFlags.STATIC, AccessFlags.CONSTRUCTOR)
custom { method, _ ->
method.containsLiteralInstruction(HOME_CATEGORY_PILL_COLOR_LITERAL) &&
method.containsLiteralInstruction(0x33000000)
}
internal val convertArgbToRgbaFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC, AccessFlags.FINAL)
returns("J")
parameters("J")
}
internal val settingsHeaderColorFingerprint = fingerprint {
accessFlags(AccessFlags.STATIC, AccessFlags.CONSTRUCTOR)
internal val parseLottieJsonFingerprint = fingerprint {
strings("Unsupported matte type: ")
}
internal val parseAnimatedColorFingerprint = fingerprint {
parameters("L", "F")
returns("Ljava/lang/Object;")
custom { method, _ ->
method.containsLiteralInstruction(SETTINGS_HEADER_COLOR_LITERAL) &&
method.containsLiteralInstruction(0)
method.containsLiteralInstruction(255.0) &&
method.containsLiteralInstruction(1.0)
}
}

View File

@@ -1,15 +1,18 @@
package app.revanced.patches.spotify.misc
import app.revanced.patcher.fingerprint
import app.revanced.patches.spotify.misc.extension.IS_SPOTIFY_LEGACY_APP_TARGET
import app.revanced.patcher.patch.BytecodePatchContext
import app.revanced.patches.spotify.shared.IS_SPOTIFY_LEGACY_APP_TARGET
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.FieldReference
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
import com.android.tools.smali.dexlib2.iface.reference.TypeReference
internal val accountAttributeFingerprint = fingerprint {
context(BytecodePatchContext)
internal val accountAttributeFingerprint get() = fingerprint {
custom { _, classDef ->
classDef.type == if (IS_SPOTIFY_LEGACY_APP_TARGET) {
"Lcom/spotify/useraccount/v1/AccountAttribute;"
@@ -19,7 +22,8 @@ internal val accountAttributeFingerprint = fingerprint {
}
}
internal val productStateProtoGetMapFingerprint = fingerprint {
context(BytecodePatchContext)
internal val productStateProtoGetMapFingerprint get() = fingerprint {
returns("Ljava/util/Map;")
custom { _, classDef ->
classDef.type == if (IS_SPOTIFY_LEGACY_APP_TARGET) {
@@ -34,9 +38,22 @@ internal val buildQueryParametersFingerprint = fingerprint {
strings("trackRows", "device_type:tablet")
}
internal val contextMenuExperimentsFingerprint = fingerprint {
internal val contextMenuViewModelClassFingerprint = fingerprint {
strings("ContextMenuViewModel(header=")
}
internal val contextMenuViewModelAddItemFingerprint = fingerprint {
parameters("L")
strings("remove_ads_upsell_enabled")
returns("V")
custom { method, _ ->
method.indexOfFirstInstruction {
getReference<MethodReference>()?.name == "add"
} >= 0
}
}
internal val getViewModelFingerprint = fingerprint {
custom { method, _ -> method.name == "getViewModel" }
}
internal val contextFromJsonFingerprint = fingerprint {
@@ -47,15 +64,15 @@ internal val contextFromJsonFingerprint = fingerprint {
Opcode.MOVE_RESULT_OBJECT,
Opcode.INVOKE_STATIC
)
custom { methodDef, classDef ->
methodDef.name == "fromJson" &&
custom { method, classDef ->
method.name == "fromJson" &&
classDef.endsWith("voiceassistants/playermodels/ContextJsonAdapter;")
}
}
internal val readPlayerOptionOverridesFingerprint = fingerprint {
custom { methodDef, classDef ->
methodDef.name == "readPlayerOptionOverrides" &&
custom { method, classDef ->
method.name == "readPlayerOptionOverrides" &&
classDef.endsWith("voiceassistants/playermodels/PreparePlayOptionsJsonAdapter;")
}
}
@@ -91,7 +108,8 @@ internal val homeStructureGetSectionsFingerprint = fingerprint {
internal fun reactivexFunctionApplyWithClassInitFingerprint(className: String) = fingerprint {
returns("Ljava/lang/Object;")
parameters("Ljava/lang/Object;")
custom { method, _ -> method.name == "apply" && method.indexOfFirstInstruction {
custom { method, _ ->
method.name == "apply" && method.indexOfFirstInstruction {
opcode == Opcode.NEW_INSTANCE && getReference<TypeReference>()?.type?.endsWith(className) == true
} >= 0
}

View File

@@ -1,21 +1,5 @@
package app.revanced.patches.spotify.misc.extension
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.shared.misc.extension.sharedExtensionPatch
import app.revanced.patches.spotify.shared.SPOTIFY_MAIN_ACTIVITY_LEGACY
/**
* If patching a legacy 8.x target. This may also be set if patching slightly older/newer app targets,
* but the only legacy target of interest is 8.6.98.900 as it's the last version that
* supports Spotify integration on Kenwood/Pioneer car stereos.
*/
internal var IS_SPOTIFY_LEGACY_APP_TARGET = false
val sharedExtensionPatch = bytecodePatch {
dependsOn(sharedExtensionPatch("spotify", mainActivityOnCreateHook))
execute {
IS_SPOTIFY_LEGACY_APP_TARGET = mainActivityOnCreateHook.fingerprint
.originalClassDef.type == SPOTIFY_MAIN_ACTIVITY_LEGACY
}
}
val sharedExtensionPatch = sharedExtensionPatch("spotify", mainActivityOnCreateHook)

View File

@@ -15,7 +15,7 @@ val fixFacebookLoginPatch = bytecodePatch(
// The Facebook SDK tries to handle the login using the Facebook app in case it is installed.
// However, the Facebook app does signature checks with the app that is requesting the authentication,
// which ends up making the Facebook server reject with an invalid key hash for the app signature.
// Override the Faceboook SDK to always handle the login using the web browser, which does not perform
// Override the Facebook SDK to always handle the login using the web browser, which does not perform
// signature checks.
val katanaProxyLoginMethodHandlerClass = katanaProxyLoginMethodHandlerClassFingerprint.originalClassDef

View File

@@ -1,41 +1,41 @@
package app.revanced.patches.spotify.misc.privacy
import app.revanced.patcher.fingerprint
import app.revanced.util.literal
import com.android.tools.smali.dexlib2.AccessFlags
internal val shareCopyUrlFingerprint = fingerprint {
returns("Ljava/lang/Object;")
parameters("Ljava/lang/Object;")
strings("clipboard", "Spotify Link")
custom { method, _ ->
method.name == "invokeSuspend"
}
}
internal val shareCopyUrlLegacyFingerprint = fingerprint {
returns("Ljava/lang/Object;")
parameters("Ljava/lang/Object;")
strings("clipboard", "createNewSession failed")
custom { method, _ ->
method.name == "apply"
}
}
internal val formatAndroidShareSheetUrlFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
returns("Ljava/lang/String;")
parameters("L", "Ljava/lang/String;")
literal {
'\n'.code.toLong()
}
}
internal val formatAndroidShareSheetUrlLegacyFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC)
returns("Ljava/lang/String;")
parameters("Lcom/spotify/share/social/sharedata/ShareData;", "Ljava/lang/String;")
literal {
'\n'.code.toLong()
}
}
package app.revanced.patches.spotify.misc.privacy
import app.revanced.patcher.fingerprint
import app.revanced.util.literal
import com.android.tools.smali.dexlib2.AccessFlags
internal val shareCopyUrlFingerprint = fingerprint {
returns("Ljava/lang/Object;")
parameters("Ljava/lang/Object;")
strings("clipboard", "Spotify Link")
custom { method, _ ->
method.name == "invokeSuspend"
}
}
internal val shareCopyUrlLegacyFingerprint = fingerprint {
returns("Ljava/lang/Object;")
parameters("Ljava/lang/Object;")
strings("clipboard", "createNewSession failed")
custom { method, _ ->
method.name == "apply"
}
}
internal val formatAndroidShareSheetUrlFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
returns("Ljava/lang/String;")
parameters("L", "Ljava/lang/String;")
literal {
'\n'.code.toLong()
}
}
internal val formatAndroidShareSheetUrlLegacyFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC)
returns("Ljava/lang/String;")
parameters("Lcom/spotify/share/social/sharedata/ShareData;", "Ljava/lang/String;")
literal {
'\n'.code.toLong()
}
}

View File

@@ -1,70 +1,70 @@
package app.revanced.patches.spotify.misc.privacy
import app.revanced.patcher.Fingerprint
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.spotify.misc.extension.IS_SPOTIFY_LEGACY_APP_TARGET
import app.revanced.patches.spotify.misc.extension.sharedExtensionPatch
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionOrThrow
import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
private const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/spotify/misc/privacy/SanitizeSharingLinksPatch;"
@Suppress("unused")
val sanitizeSharingLinksPatch = bytecodePatch(
name = "Sanitize sharing links",
description = "Removes the tracking query parameters from links before they are shared.",
) {
compatibleWith("com.spotify.music")
dependsOn(sharedExtensionPatch)
execute {
val extensionMethodDescriptor = "$EXTENSION_CLASS_DESCRIPTOR->" +
"sanitizeUrl(Ljava/lang/String;)Ljava/lang/String;"
val copyFingerprint = if (IS_SPOTIFY_LEGACY_APP_TARGET) {
shareCopyUrlLegacyFingerprint
} else {
shareCopyUrlFingerprint
}
copyFingerprint.method.apply {
val newPlainTextInvokeIndex = indexOfFirstInstructionOrThrow {
getReference<MethodReference>()?.name == "newPlainText"
}
val register = getInstruction<FiveRegisterInstruction>(newPlainTextInvokeIndex).registerD
addInstructions(
newPlainTextInvokeIndex,
"""
invoke-static { v$register }, $extensionMethodDescriptor
move-result-object v$register
"""
)
}
// Android native share sheet is used for all other quick share types (X, WhatsApp, etc).
val shareUrlParameter : String
val shareSheetFingerprint : Fingerprint
if (IS_SPOTIFY_LEGACY_APP_TARGET) {
shareSheetFingerprint = formatAndroidShareSheetUrlLegacyFingerprint
shareUrlParameter = "p2"
} else {
shareSheetFingerprint = formatAndroidShareSheetUrlFingerprint
shareUrlParameter = "p1"
}
shareSheetFingerprint.method.addInstructions(
0,
"""
invoke-static { $shareUrlParameter }, $extensionMethodDescriptor
move-result-object $shareUrlParameter
"""
)
}
}
package app.revanced.patches.spotify.misc.privacy
import app.revanced.patcher.Fingerprint
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.spotify.misc.extension.sharedExtensionPatch
import app.revanced.patches.spotify.shared.IS_SPOTIFY_LEGACY_APP_TARGET
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionOrThrow
import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
private const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/spotify/misc/privacy/SanitizeSharingLinksPatch;"
@Suppress("unused")
val sanitizeSharingLinksPatch = bytecodePatch(
name = "Sanitize sharing links",
description = "Removes the tracking query parameters from links before they are shared.",
) {
compatibleWith("com.spotify.music")
dependsOn(sharedExtensionPatch)
execute {
val extensionMethodDescriptor = "$EXTENSION_CLASS_DESCRIPTOR->" +
"sanitizeUrl(Ljava/lang/String;)Ljava/lang/String;"
val copyFingerprint = if (IS_SPOTIFY_LEGACY_APP_TARGET) {
shareCopyUrlLegacyFingerprint
} else {
shareCopyUrlFingerprint
}
copyFingerprint.method.apply {
val newPlainTextInvokeIndex = indexOfFirstInstructionOrThrow {
getReference<MethodReference>()?.name == "newPlainText"
}
val urlRegister = getInstruction<FiveRegisterInstruction>(newPlainTextInvokeIndex).registerD
addInstructions(
newPlainTextInvokeIndex,
"""
invoke-static { v$urlRegister }, $extensionMethodDescriptor
move-result-object v$urlRegister
"""
)
}
// Android native share sheet is used for all other quick share types (X, WhatsApp, etc).
val shareUrlParameter : String
val shareSheetFingerprint : Fingerprint
if (IS_SPOTIFY_LEGACY_APP_TARGET) {
shareSheetFingerprint = formatAndroidShareSheetUrlLegacyFingerprint
shareUrlParameter = "p2"
} else {
shareSheetFingerprint = formatAndroidShareSheetUrlFingerprint
shareUrlParameter = "p1"
}
shareSheetFingerprint.method.addInstructions(
0,
"""
invoke-static { $shareUrlParameter }, $extensionMethodDescriptor
move-result-object $shareUrlParameter
"""
)
}
}

View File

@@ -1,7 +1,6 @@
package app.revanced.patches.spotify.misc.widgets
import app.revanced.patcher.fingerprint
import app.revanced.util.indexOfFirstInstruction
import com.android.tools.smali.dexlib2.Opcode
internal val canBindAppWidgetPermissionFingerprint = fingerprint {

View File

@@ -1,7 +1,9 @@
package app.revanced.patches.spotify.misc.widgets
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.spotify.shared.IS_SPOTIFY_LEGACY_APP_TARGET
import app.revanced.util.returnEarly
import java.util.logging.Logger
@Suppress("unused")
val fixThirdPartyLaunchersWidgets = bytecodePatch(
@@ -11,6 +13,14 @@ val fixThirdPartyLaunchersWidgets = bytecodePatch(
compatibleWith("com.spotify.music")
execute {
if (IS_SPOTIFY_LEGACY_APP_TARGET) {
// The permission check does not exist in legacy versions.
Logger.getLogger(this::class.java.name).warning(
"Legacy app target does not have any third party launcher restrictions. No changes applied."
)
return@execute
}
// Only system app launchers are granted the BIND_APPWIDGET permission.
// Override the method that checks for it to always return true, as this permission is not actually required
// for the widgets to work.

View File

@@ -1,6 +1,8 @@
package app.revanced.patches.spotify.shared
import app.revanced.patcher.fingerprint
import app.revanced.patcher.patch.BytecodePatchContext
import app.revanced.patches.spotify.misc.extension.mainActivityOnCreateHook
private const val SPOTIFY_MAIN_ACTIVITY = "Lcom/spotify/music/SpotifyMainActivity;"
@@ -15,3 +17,18 @@ internal val mainActivityOnCreateFingerprint = fingerprint {
|| classDef.type == SPOTIFY_MAIN_ACTIVITY_LEGACY)
}
}
private var isLegacyAppTarget: Boolean? = null
/**
* If patching a legacy 8.x target. This may also be set if patching slightly older/newer app targets,
* but the only legacy target of interest is 8.6.98.900 as it's the last version that
* supports Spotify integration on Kenwood/Pioneer car stereos.
*/
context(BytecodePatchContext)
internal val IS_SPOTIFY_LEGACY_APP_TARGET get(): Boolean {
if (isLegacyAppTarget == null) {
isLegacyAppTarget = mainActivityOnCreateHook.fingerprint.originalClassDef.type == SPOTIFY_MAIN_ACTIVITY_LEGACY
}
return isLegacyAppTarget!!
}

View File

@@ -161,7 +161,7 @@ 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_timestamp_button"),
SwitchPreference("revanced_hide_comments_preview_comment"),
SwitchPreference("revanced_hide_comments_thanks_button"),
),

View File

@@ -74,3 +74,21 @@ internal val setPivotBarVisibilityParentFingerprint = fingerprint {
parameters("Z")
strings("FEnotifications_inbox")
}
internal val shortsExperimentalPlayerFeatureFlagFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("Z")
parameters()
literal {
45677719L
}
}
internal val renderNextUIFeatureFlagFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("Z")
parameters()
literal {
45649743L
}
}

View File

@@ -18,6 +18,7 @@ import app.revanced.patches.youtube.misc.litho.filter.addLithoFilter
import app.revanced.patches.youtube.misc.litho.filter.lithoFilterPatch
import app.revanced.patches.youtube.misc.navigation.navigationBarHookPatch
import app.revanced.patches.youtube.misc.playservice.is_19_41_or_greater
import app.revanced.patches.youtube.misc.playservice.is_20_07_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
@@ -26,6 +27,7 @@ import app.revanced.util.forEachLiteralValueInstruction
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionOrThrow
import app.revanced.util.indexOfFirstLiteralInstruction
import app.revanced.util.returnLate
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
@@ -90,6 +92,7 @@ private val hideShortsComponentsResourcePatch = resourcePatch {
SwitchPreference("revanced_hide_shorts_paused_overlay_buttons"),
// Suggested actions.
SwitchPreference("revanced_hide_shorts_preview_comment"),
SwitchPreference("revanced_hide_shorts_save_sound_button"),
SwitchPreference("revanced_hide_shorts_use_template_button"),
SwitchPreference("revanced_hide_shorts_upcoming_button"),
@@ -251,5 +254,27 @@ val hideShortsComponentsPatch = bytecodePatch(
}
// endregion
// region Disable experimental Shorts flags.
// Flags might be present in earlier targets, but they are not found in 19.47.53.
// If these flags are forced on, the experimental layout is still not used and
// it appears the features requires additional server side data to fully use.
if (is_20_07_or_greater) {
// Experimental Shorts player uses Android native buttons and not Litho,
// and the layout is provided by the server.
//
// Since the buttons are native components and not Litho, it should be possible to
// fix the RYD Shorts loading delay by asynchronously loading RYD and updating
// the button text after RYD has loaded.
shortsExperimentalPlayerFeatureFlagFingerprint.method.returnLate(false)
// Experimental UI renderer must also be disabled since it requires the
// experimental Shorts player. If this is enabled but Shorts player
// is disabled then the app crashes when the Shorts player is opened.
renderNextUIFeatureFlagFingerprint.method.returnLate(false)
}
// endregion
}
}

View File

@@ -44,6 +44,19 @@ internal val themeHelperLightColorFingerprint = fingerprint {
}
}
internal const val GRADIENT_LOADING_SCREEN_AB_CONSTANT = 45412406L
internal val useGradientLoadingScreenFingerprint = fingerprint {
literal { GRADIENT_LOADING_SCREEN_AB_CONSTANT }
}
internal const val SPLASH_SCREEN_STYLE_FEATURE_FLAG = 269032877L
internal val splashScreenStyleFingerprint = fingerprint {
returns("V")
parameters("Landroid/os/Bundle;")
literal { SPLASH_SCREEN_STYLE_FEATURE_FLAG }
custom { method, classDef ->
method.name == "onCreate" && classDef.endsWith("/MainActivity;")
}
}

View File

@@ -10,6 +10,7 @@ import app.revanced.patches.all.misc.resources.addResourcesPatch
import app.revanced.patches.shared.misc.mapping.resourceMappingPatch
import app.revanced.patches.shared.misc.settings.preference.BasePreference
import app.revanced.patches.shared.misc.settings.preference.InputType
import app.revanced.patches.shared.misc.settings.preference.ListPreference
import app.revanced.patches.shared.misc.settings.preference.PreferenceCategory
import app.revanced.patches.shared.misc.settings.preference.PreferenceScreenPreference.Sorting
import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
@@ -17,6 +18,7 @@ import app.revanced.patches.shared.misc.settings.preference.TextPreference
import app.revanced.patches.youtube.layout.seekbar.seekbarColorPatch
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.playservice.is_19_25_or_greater
import app.revanced.patches.youtube.misc.playservice.is_19_47_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
@@ -27,8 +29,6 @@ import org.w3c.dom.Element
private const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/youtube/patches/theme/ThemePatch;"
internal const val GRADIENT_LOADING_SCREEN_AB_CONSTANT = 45412406L
val themePatch = bytecodePatch(
name = "Theme",
description = "Adds options for theming and applies a custom background theme (dark background theme defaults to amoled black).",
@@ -232,15 +232,32 @@ val themePatch = bytecodePatch(
addResources("youtube", "layout.theme.themePatch")
PreferenceScreen.GENERAL_LAYOUT.addPreferences(
SwitchPreference("revanced_gradient_loading_screen"),
SwitchPreference("revanced_gradient_loading_screen")
)
if (is_19_47_or_greater) {
PreferenceScreen.GENERAL_LAYOUT.addPreferences(
ListPreference(
key = "splash_screen_animation_style",
summaryKey = null
)
)
}
useGradientLoadingScreenFingerprint.method.insertLiteralOverride(
GRADIENT_LOADING_SCREEN_AB_CONSTANT,
"$EXTENSION_CLASS_DESCRIPTOR->gradientLoadingScreenEnabled(Z)Z"
)
mapOf(
if (is_19_47_or_greater) {
// Lottie splash screen exists in earlier versions, but it may not be always on.
splashScreenStyleFingerprint.method.insertLiteralOverride(
SPLASH_SCREEN_STYLE_FEATURE_FLAG,
"$EXTENSION_CLASS_DESCRIPTOR->getLoadingScreenType(I)I"
)
}
arrayOf(
themeHelperLightColorFingerprint to lightThemeBackgroundColor,
themeHelperDarkColorFingerprint to darkThemeBackgroundColor,
).forEach { (fingerprint, color) ->

View File

@@ -123,3 +123,13 @@ internal val playbackSpeedMenuSpeedChangedFingerprint = fingerprint {
Opcode.RETURN_OBJECT,
)
}
internal val playbackSpeedClassFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
returns("L")
parameters("L")
opcodes(
Opcode.RETURN_OBJECT
)
strings("PLAYBACK_RATE_MENU_BOTTOM_SHEET_FRAGMENT")
}

View File

@@ -7,6 +7,7 @@ import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.util.proxy.mutableTypes.MutableClass
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod.Companion.toMutable
import app.revanced.patcher.util.smali.toInstructions
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.shared.newVideoQualityChangedFingerprint
import app.revanced.patches.youtube.video.playerresponse.Hook
@@ -16,6 +17,8 @@ import app.revanced.patches.youtube.video.videoid.hookBackgroundPlayVideoId
import app.revanced.patches.youtube.video.videoid.hookPlayerResponseVideoId
import app.revanced.patches.youtube.video.videoid.hookVideoId
import app.revanced.patches.youtube.video.videoid.videoIdPatch
import app.revanced.util.addInstructionsAtControlFlowLabel
import app.revanced.util.addStaticFieldToExtension
import app.revanced.util.getReference
import app.revanced.util.indexOfFirstInstructionOrThrow
import com.android.tools.smali.dexlib2.AccessFlags
@@ -29,6 +32,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
import com.android.tools.smali.dexlib2.iface.reference.FieldReference
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
import com.android.tools.smali.dexlib2.immutable.ImmutableMethod
import com.android.tools.smali.dexlib2.immutable.ImmutableMethodImplementation
import com.android.tools.smali.dexlib2.immutable.ImmutableMethodParameter
import com.android.tools.smali.dexlib2.util.MethodUtil
@@ -189,6 +193,72 @@ val videoInformationPatch = bytecodePatch(
proxy(classes.first { it.type == setPlaybackSpeedMethodReference.definingClass })
.mutableClass.methods.first { it.name == setPlaybackSpeedMethodReference.name }
setPlaybackSpeedMethodIndex = 0
// Add override playback speed method.
onPlaybackSpeedItemClickFingerprint.classDef.methods.add(
ImmutableMethod(
definingClass,
"overridePlaybackSpeed",
listOf(ImmutableMethodParameter("F", annotations, null)),
"V",
AccessFlags.PUBLIC.value or AccessFlags.PUBLIC.value,
annotations,
null,
ImmutableMethodImplementation(
4,
"""
# Check if the playback speed is not auto (-2.0f)
const/4 v0, 0x0
cmpg-float v0, v3, v0
if-lez v0, :ignore
# Get the container class field.
iget-object v0, v2, $setPlaybackSpeedContainerClassFieldReference
# For some reason, in YouTube 19.44.39 this value is sometimes null.
if-eqz v0, :ignore
# Get the field from its class.
iget-object v1, v0, $setPlaybackSpeedClassFieldReference
# Invoke setPlaybackSpeed on that class.
invoke-virtual {v1, v3}, $setPlaybackSpeedMethodReference
:ignore
return-void
""".toInstructions(), null, null
)
).toMutable()
)
}
playbackSpeedClassFingerprint.method.apply {
val index = indexOfFirstInstructionOrThrow(Opcode.RETURN_OBJECT)
val register = getInstruction<OneRegisterInstruction>(index).registerA
val playbackSpeedClass = this.returnType
// Set playback speed class.
addInstructionsAtControlFlowLabel(
index,
"sput-object v$register, $EXTENSION_CLASS_DESCRIPTOR->playbackSpeedClass:$playbackSpeedClass"
)
val smaliInstructions =
"""
if-eqz v0, :ignore
invoke-virtual {v0, p0}, $playbackSpeedClass->overridePlaybackSpeed(F)V
return-void
:ignore
nop
"""
addStaticFieldToExtension(
EXTENSION_CLASS_DESCRIPTOR,
"overridePlaybackSpeed",
"playbackSpeedClass",
playbackSpeedClass,
smaliInstructions
)
}
// Handle new playback speed menu.

View File

@@ -52,14 +52,14 @@ val rememberVideoQualityPatch = bytecodePatch {
ListPreference(
key = "revanced_shorts_quality_default_mobile",
summaryKey = null,
entriesKey = "revanced_video_quality_default_entries",
entryValuesKey = "revanced_video_quality_default_entry_values",
entriesKey = "revanced_shorts_quality_default_entries",
entryValuesKey = "revanced_shorts_quality_default_entry_values",
),
ListPreference(
key = "revanced_shorts_quality_default_wifi",
summaryKey = null,
entriesKey = "revanced_video_quality_default_entries",
entryValuesKey = "revanced_video_quality_default_entry_values",
entriesKey = "revanced_shorts_quality_default_entries",
entryValuesKey = "revanced_shorts_quality_default_entry_values",
),
SwitchPreference("revanced_remember_shorts_quality_last_selected")
))

View File

@@ -1,19 +1,11 @@
package app.revanced.patches.youtube.video.speed.custom
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
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.extensions.InstructionExtensions.instructions
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.patch.resourcePatch
import app.revanced.patcher.util.proxy.mutableTypes.MutableField.Companion.toMutable
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.InputType
import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
import app.revanced.patches.shared.misc.settings.preference.TextPreference
@@ -27,27 +19,11 @@ import app.revanced.patches.youtube.misc.recyclerviewtree.hook.addRecyclerViewTr
import app.revanced.patches.youtube.misc.recyclerviewtree.hook.recyclerViewTreeHookPatch
import app.revanced.patches.youtube.misc.settings.settingsPatch
import app.revanced.patches.youtube.video.speed.settingsMenuVideoSpeedGroup
import app.revanced.util.*
import com.android.tools.smali.dexlib2.AccessFlags
import app.revanced.util.indexOfFirstInstructionOrThrow
import app.revanced.util.indexOfFirstLiteralInstruction
import app.revanced.util.indexOfFirstLiteralInstructionOrThrow
import com.android.tools.smali.dexlib2.iface.instruction.NarrowLiteralInstruction
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
import com.android.tools.smali.dexlib2.iface.reference.FieldReference
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
import com.android.tools.smali.dexlib2.immutable.ImmutableField
internal var speedUnavailableId = -1L
private set
private val customPlaybackSpeedResourcePatch = resourcePatch {
dependsOn(resourceMappingPatch)
execute {
speedUnavailableId = resourceMappings[
"string",
"varispeed_unavailable_message",
]
}
}
private const val FILTER_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/youtube/patches/components/PlaybackSpeedMenuFilterPatch;"
@@ -64,8 +40,7 @@ internal val customPlaybackSpeedPatch = bytecodePatch(
addResourcesPatch,
lithoFilterPatch,
versionCheckPatch,
recyclerViewTreeHookPatch,
customPlaybackSpeedResourcePatch
recyclerViewTreeHookPatch
)
execute {
@@ -87,38 +62,6 @@ internal val customPlaybackSpeedPatch = bytecodePatch(
)
}
// Replace the speeds float array with custom speeds.
speedArrayGeneratorFingerprint.method.apply {
val sizeCallIndex = indexOfFirstInstructionOrThrow { getReference<MethodReference>()?.name == "size" }
val sizeCallResultRegister = getInstruction<OneRegisterInstruction>(sizeCallIndex + 1).registerA
replaceInstruction(sizeCallIndex + 1, "const/4 v$sizeCallResultRegister, 0x0")
val arrayLengthConstIndex = indexOfFirstLiteralInstructionOrThrow(7)
val arrayLengthConstDestination = getInstruction<OneRegisterInstruction>(arrayLengthConstIndex).registerA
val playbackSpeedsArrayType = "$EXTENSION_CLASS_DESCRIPTOR->customPlaybackSpeeds:[F"
addInstructions(
arrayLengthConstIndex + 1,
"""
sget-object v$arrayLengthConstDestination, $playbackSpeedsArrayType
array-length v$arrayLengthConstDestination, v$arrayLengthConstDestination
""",
)
val originalArrayFetchIndex = indexOfFirstInstructionOrThrow {
val reference = getReference<FieldReference>()
reference?.type == "[F" && reference.definingClass.endsWith("/PlayerConfigModel;")
}
val originalArrayFetchDestination =
getInstruction<OneRegisterInstruction>(originalArrayFetchIndex).registerA
replaceInstruction(
originalArrayFetchIndex,
"sget-object v$originalArrayFetchDestination, $playbackSpeedsArrayType",
)
}
// Override the min/max speeds that can be used.
speedLimiterFingerprint.method.apply {
val limitMinIndex = indexOfFirstLiteralInstructionOrThrow(0.25f)
@@ -135,47 +78,7 @@ internal val customPlaybackSpeedPatch = bytecodePatch(
replaceInstruction(limitMaxIndex, "const/high16 v$limitMaxRegister, 8.0f")
}
// Add a static INSTANCE field to the class.
// This is later used to call "showOldPlaybackSpeedMenu" on the instance.
val instanceField = ImmutableField(
getOldPlaybackSpeedsFingerprint.originalClassDef.type,
"INSTANCE",
getOldPlaybackSpeedsFingerprint.originalClassDef.type,
AccessFlags.PUBLIC.value or AccessFlags.STATIC.value,
null,
null,
null,
).toMutable()
getOldPlaybackSpeedsFingerprint.classDef.staticFields.add(instanceField)
// Set the INSTANCE field to the instance of the class.
// In order to prevent a conflict with another patch, add the instruction at index 1.
getOldPlaybackSpeedsFingerprint.method.addInstruction(1, "sput-object p0, $instanceField")
// Get the "showOldPlaybackSpeedMenu" method.
// This is later called on the field INSTANCE.
val showOldPlaybackSpeedMenuMethod = showOldPlaybackSpeedMenuFingerprint.match(
getOldPlaybackSpeedsFingerprint.classDef,
).method.toString()
// Insert the call to the "showOldPlaybackSpeedMenu" method on the field INSTANCE.
showOldPlaybackSpeedMenuExtensionFingerprint.method.apply {
addInstructionsWithLabels(
instructions.lastIndex,
"""
sget-object v0, $instanceField
if-nez v0, :not_null
return-void
:not_null
invoke-virtual { v0 }, $showOldPlaybackSpeedMenuMethod
""",
)
}
// region Force old video quality menu.
// This is necessary, because there is no known way of adding custom playback speeds to the new menu.
// Close the unpatched playback dialog and show the modern custom dialog.
addRecyclerViewTreeHook(EXTENSION_CLASS_DESCRIPTOR)
// Required to check if the playback speed menu is currently shown.

View File

@@ -1,30 +1,9 @@
package app.revanced.patches.youtube.video.speed.custom
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 getOldPlaybackSpeedsFingerprint = fingerprint {
parameters("[L", "I")
strings("menu_item_playback_speed")
}
internal val showOldPlaybackSpeedMenuFingerprint = fingerprint {
literal { speedUnavailableId }
}
internal val showOldPlaybackSpeedMenuExtensionFingerprint = fingerprint {
custom { method, _ -> method.name == "showOldPlaybackSpeedMenu" }
}
internal val speedArrayGeneratorFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
returns("[L")
parameters("Lcom/google/android/libraries/youtube/innertube/model/player/PlayerResponseModel;")
strings("0.0#")
}
internal val speedLimiterFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("V")

View File

@@ -10,6 +10,7 @@ import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction
import app.revanced.patcher.patch.BytecodePatchContext
import app.revanced.patcher.patch.PatchException
import app.revanced.patcher.util.proxy.mutableTypes.MutableClass
import app.revanced.patcher.util.proxy.mutableTypes.MutableField.Companion.toMutable
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
import app.revanced.patcher.util.smali.ExternalLabel
import app.revanced.patches.shared.misc.mapping.get
@@ -31,6 +32,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.ThreeRegisterInstructio
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
import com.android.tools.smali.dexlib2.iface.instruction.WideLiteralInstruction
import com.android.tools.smali.dexlib2.iface.reference.Reference
import com.android.tools.smali.dexlib2.immutable.ImmutableField
import com.android.tools.smali.dexlib2.util.MethodUtil
import java.util.EnumSet
@@ -962,6 +964,43 @@ private fun MutableMethod.overrideReturnValue(value: String, returnLate: Boolean
}
}
internal fun BytecodePatchContext.addStaticFieldToExtension(
className: String,
methodName: String,
fieldName: String,
objectClass: String,
smaliInstructions: String
) {
val classDef = classes.find { classDef -> classDef.type == className }
?: throw PatchException("No matching methods found in: $className")
val mutableClass = proxy(classDef).mutableClass
val objectCall = "$mutableClass->$fieldName:$objectClass"
mutableClass.apply {
methods.first { method -> method.name == methodName }.apply {
staticFields.add(
ImmutableField(
definingClass,
fieldName,
objectClass,
AccessFlags.PUBLIC.value or AccessFlags.STATIC.value,
null,
annotations,
null
).toMutable()
)
addInstructionsWithLabels(
0,
"""
sget-object v0, $objectCall
""" + smaliInstructions
)
}
}
}
/**
* Set the custom condition for this fingerprint to check for a literal value.
*

View File

@@ -35,7 +35,7 @@ Second \"item\" text"</string>
<string name="revanced_settings_submenu_title">الإعدادات</string>
<string name="revanced_settings_confirm_user_dialog_title">هل ترغب في المتابعة؟</string>
<string name="revanced_settings_reset">إعادة التعيين</string>
<string name="revanced_settings_reset_color">إعادة تعيين اللون</string>
<string name="revanced_settings_reset_color">Reset color</string>
<string name="revanced_settings_color_invalid">لون غير صالح</string>
<string name="revanced_settings_restart_title">تحديث وإعادة التشغيل</string>
<string name="revanced_settings_restart">إعادة التشغيل</string>
@@ -311,9 +311,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_comments_create_a_short_button_title">إخفاء زر \'إنشاء Short\'</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">تم إخفاء زر إنشاء Short</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">يتم عرض زر إنشاء Short</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">إخفاء أزرار الرموز التعبيرية والطوابع الزمنية</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_timestamp_button_title">زر إخفاء الطابع الزمني</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">زر الطابع الزمني مخفي</string>
<string name="revanced_hide_comments_timestamp_button_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>
@@ -750,6 +750,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_location_label_title">إخفاء تسمية الموقع</string>
<string name="revanced_hide_shorts_location_label_summary_on">تم إخفاء تسمية الموقع</string>
<string name="revanced_hide_shorts_location_label_summary_off">يتم عرض تسمية الموقع</string>
<string name="revanced_hide_shorts_preview_comment_title">إخفاء تعليق المعاينة</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">تم إخفاء تعليق المعاينة</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">يتم عرض تعليق المعاينة</string>
<string name="revanced_hide_shorts_save_sound_button_title">إخفاء زر حفظ الموسيقى</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">تم إخفاء زر حفظ الموسيقى</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">يتم عرض زر حفظ الموسيقى</string>
@@ -1253,6 +1256,9 @@ Second \"item\" text"</string>
<string name="revanced_gradient_loading_screen_title">تمكين شاشة التحميل المتدرجة</string>
<string name="revanced_gradient_loading_screen_summary_on">ستحتوي شاشة التحميل على خلفية متدرجة</string>
<string name="revanced_gradient_loading_screen_summary_off">ستحتوي شاشة التحميل على خلفية ثابتة</string>
<string name="splash_screen_animation_style_title">نمط الشاشة الترحيبية</string>
<string name="splash_screen_animation_style_entry_1">اللون</string>
<string name="splash_screen_animation_style_entry_2">أبيض وأسود</string>
<string name="revanced_seekbar_custom_color_title">تمكين لون شريط تقدم الفيديو المخصص</string>
<string name="revanced_seekbar_custom_color_summary_on">يتم عرض لون شريط تقدم الفيديو المخصص</string>
<string name="revanced_seekbar_custom_color_summary_off">يتم عرض لون شريط تقدم الفيديو الاصلي</string>
@@ -1398,7 +1404,7 @@ Second \"item\" text"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">عرض زر مربع حوار السرعة</string>
<string name="revanced_playback_speed_dialog_button_summary_on">يتم عرض الزر</string>
<string name="revanced_playback_speed_dialog_button_summary_on">الزر معروض. انقر مع الاستمرار لإعادة ضبط سرعة التشغيل إلى الوضع الافتراضي</string>
<string name="revanced_playback_speed_dialog_button_summary_off">لا يتم عرض الزر</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1410,6 +1416,7 @@ Second \"item\" text"</string>
<string name="revanced_custom_playback_speeds_invalid">يجب أن تكون سرعات التشغيل المخصصة أقل من %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">سرعة التشغيل المخصصة غير صالحة</string>
<string name="revanced_custom_playback_speeds_auto">تلقائي</string>
<string name="revanced_custom_playback_speeds_reset_toast">تمت إعادة ضبط سرعة التشغيل إلى: %s</string>
<string name="revanced_speed_tap_and_hold_title">سرعة النقر مع الاستمرار المخصصة</string>
<string name="revanced_speed_tap_and_hold_summary">سرعة التشغيل بين 0-8</string>
</patch>

View File

@@ -311,9 +311,6 @@ Gözlənilməz hallardan xəbərdar olmayacaqsınız."</string>
<string name="revanced_hide_comments_create_a_short_button_title">\"Shorts Yarat\" düyməsini gizlət</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Short yarat düyməsi gizlidir</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Short yarat düyməsi görünür</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Emoji və vaxt möhürü düymələrin gizlət</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Emoji və vaxt möhürü düymələri gizlidir</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Emoji və vaxt möhürü düymələri görünür</string>
<string name="revanced_hide_comments_preview_comment_title">Önbaxış şərhin gizlət</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Önbaxış şərhi gizlədilib</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Önbaxış şərhi göstərilir</string>
@@ -750,6 +747,9 @@ Audio trek seçimin göstərmək üçün \"Video axınları saxtalaşdır\"ı iO
<string name="revanced_hide_shorts_location_label_title">Məkan etiketini gizlət</string>
<string name="revanced_hide_shorts_location_label_summary_on">Məkan etiketi gizlidir</string>
<string name="revanced_hide_shorts_location_label_summary_off">Məkan etiketi göstərilir</string>
<string name="revanced_hide_shorts_preview_comment_title">Öncül baxış şərhini gizlət</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Öncül baxış şərhi gizlidir</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Öncül baxış şərhi göstərilir</string>
<string name="revanced_hide_shorts_save_sound_button_title">Musiqini saxla düyməsini gizlət</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">\"Musiqini saxla\" düyməsi gizlidir</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">\"Musiqini saxla\" düyməsi göstərilir</string>
@@ -1397,7 +1397,7 @@ Bunu aktivləşdirmə daha yüksək video keyfiyyətləri əngəlin silə bilər
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Sürət dialoq düyməsini göstər</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Düymə göstərilir</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Düymə göstərilir. Oynatma sürətin standart olaraq qaytarmaq üçün toxunub saxla</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Düymə göstərilmir</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1409,6 +1409,7 @@ Bunu aktivləşdirmə daha yüksək video keyfiyyətləri əngəlin silə bilər
<string name="revanced_custom_playback_speeds_invalid">Fərdi sürətlər %s dəyərindən az olmalıdır</string>
<string name="revanced_custom_playback_speeds_parse_exception">Fərdi oynatma sürətləri etibarsızdır</string>
<string name="revanced_custom_playback_speeds_auto">Avtomatik</string>
<string name="revanced_custom_playback_speeds_reset_toast">Oynatma sürəti sıfırlandı: %s</string>
<string name="revanced_speed_tap_and_hold_title">Xüsusi toxunma və saxlanılma sürəti</string>
<string name="revanced_speed_tap_and_hold_summary">0-8 arası oynatma sürəti</string>
</patch>

View File

@@ -311,9 +311,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_comments_create_a_short_button_title">Схаваць кнопку \"Створиць 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_timestamp_button_title">Схаваць кнопку часу</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Кнопка часу схаваная</string>
<string name="revanced_hide_comments_timestamp_button_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>
@@ -750,6 +750,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_location_label_title">Схаваць метку месцазнаходжання</string>
<string name="revanced_hide_shorts_location_label_summary_on">Метка месцазнаходжання схавана</string>
<string name="revanced_hide_shorts_location_label_summary_off">Паказана метка месцазнаходжання</string>
<string name="revanced_hide_shorts_preview_comment_title">Схаваць папярэдні прагляд каментарыя</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Папярэдні прагляд каментарыя схаваны</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Паказваецца папярэдні прагляд каментарыя</string>
<string name="revanced_hide_shorts_save_sound_button_title">Схаваць кнопку «Захаваць музыку»</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Кнопка захавання музыкі схавана</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Кнопка захавання музыкі паказана</string>
@@ -1254,6 +1257,9 @@ Second \"item\" text"</string>
<string name="revanced_gradient_loading_screen_title">Уключыць градыентны экран загрузкі</string>
<string name="revanced_gradient_loading_screen_summary_on">Экран загрузкі будзе мець градыентны фон</string>
<string name="revanced_gradient_loading_screen_summary_off">Экран загрузкі будзе мець суцэльны фон</string>
<string name="splash_screen_animation_style_title">Стыль застаўкі</string>
<string name="splash_screen_animation_style_entry_1">Колер</string>
<string name="splash_screen_animation_style_entry_2">Чорна-белы</string>
<string name="revanced_seekbar_custom_color_title">Уключыць уласны колер панэлі пошуку</string>
<string name="revanced_seekbar_custom_color_summary_on">Паказваецца карыстальніцкі колер панэлі пошуку</string>
<string name="revanced_seekbar_custom_color_summary_off">Паказаны зыходны колер панэлі пошуку</string>
@@ -1399,7 +1405,7 @@ Second \"item\" text"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Паказаць дыялогавую кнопку хуткасці</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Паказана кнопка</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Кнопка паказана. Націсніце і ўтрымлівайце, каб скінуць хуткасць прайгравання да стандартнай</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Кнопка не паказваецца</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1411,6 +1417,7 @@ Second \"item\" text"</string>
<string name="revanced_custom_playback_speeds_invalid">Нестандартныя хуткасці павінны быць менш за %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Несапраўдныя нестандартныя хуткасці прайгравання</string>
<string name="revanced_custom_playback_speeds_auto">Аўто</string>
<string name="revanced_custom_playback_speeds_reset_toast">Хуткасць прайгравання скінута да: %s</string>
<string name="revanced_speed_tap_and_hold_title">Уласны хуткасць націску і ўтрымання</string>
<string name="revanced_speed_tap_and_hold_summary">Хуткасць прайгравання між 0-8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_comments_create_a_short_button_title">Бутон за създаване на 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_timestamp_button_title">Скриване на бутона за времеви печат</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Бутонът за времеви печат е скрит</string>
<string name="revanced_hide_comments_timestamp_button_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>
@@ -750,6 +750,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_location_label_title">Етикет за местоположение</string>
<string name="revanced_hide_shorts_location_label_summary_on">Етикет за местоположение е скрит</string>
<string name="revanced_hide_shorts_location_label_summary_off">Етикет за местоположение се показва</string>
<string name="revanced_hide_shorts_preview_comment_title">Скриване на коментара за визуализация</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Коментарът за визуализация е скрит</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Показва се визуализация на коментара</string>
<string name="revanced_hide_shorts_save_sound_button_title">Скриване на бутона Save music</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Бутонът за запазване на музика е скрит</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Показан е бутонът за запазване на музика</string>
@@ -1253,6 +1256,9 @@ Second \"item\" text"</string>
<string name="revanced_gradient_loading_screen_title">Фон на екрана при зареждане на видео</string>
<string name="revanced_gradient_loading_screen_summary_on">Екранът за зареждане ще има градиентен фон</string>
<string name="revanced_gradient_loading_screen_summary_off">Екранът за зареждане ще има плътен фон</string>
<string name="splash_screen_animation_style_title">Стил на началния екран</string>
<string name="splash_screen_animation_style_entry_1">Цвят</string>
<string name="splash_screen_animation_style_entry_2">Черно и бяло</string>
<string name="revanced_seekbar_custom_color_title">Промяна на цвета на индикатора за време</string>
<string name="revanced_seekbar_custom_color_summary_on">Показва се персонализиран цвят на лентата за напредък</string>
<string name="revanced_seekbar_custom_color_summary_off">Показва се оригиналния цвят на лентата за напредък</string>
@@ -1398,7 +1404,7 @@ Second \"item\" text"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Показване бутон за скорост</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Бутона \"Уведоми ме\" се показва.</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Бутонът е показан. Докоснете и задръжте, за да върнете скоростта на възпроизвеждане към стойността по подразбиране</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Бутонът не е показан</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1410,6 +1416,7 @@ Second \"item\" text"</string>
<string name="revanced_custom_playback_speeds_invalid">Персонализираните скорости трябва да са по-малки от %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Невалидни персонализирани скорости на възпроизвеждане</string>
<string name="revanced_custom_playback_speeds_auto">Авто</string>
<string name="revanced_custom_playback_speeds_reset_toast">Скоростта на възпроизвеждане е нулирана на: %s</string>
<string name="revanced_speed_tap_and_hold_title">Персонализирана скорост при докосване и задържане</string>
<string name="revanced_speed_tap_and_hold_summary">Скорост на възпроизвеждане между 0-8</string>
</patch>

View File

@@ -307,9 +307,9 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
<string name="revanced_hide_comments_create_a_short_button_title">\'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_timestamp_button_title">সময় চিহ্নিত করার বোতাম লুকান</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">সময় চিহ্নিত করার বোতাম লুকানো আছে</string>
<string name="revanced_hide_comments_timestamp_button_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>
@@ -746,6 +746,9 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
<string name="revanced_hide_shorts_location_label_title">অবস্থান লেবেল লুকান</string>
<string name="revanced_hide_shorts_location_label_summary_on">অবস্থান লেবেল লুকিয়ে রয়েছে</string>
<string name="revanced_hide_shorts_location_label_summary_off">অবস্থান লেবেল প্রদর্শিত হয়েছে</string>
<string name="revanced_hide_shorts_preview_comment_title">Preview comment লুকান</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Preview comment লুকানো আছে</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Preview comment দেখানো হয়েছে</string>
<string name="revanced_hide_shorts_save_sound_button_title">সেভ মিউজিক বোতামটি লুকান</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Save music বোতাম লুকানো আছে</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Save music বোতাম দেখানো হচ্ছে</string>
@@ -1249,6 +1252,9 @@ Miniplayer স্ক্রিন থেকে বামে বা ডানে
<string name="revanced_gradient_loading_screen_title">গ্রেডিয়েন্ট লোডিং স্ক্রিণ সক্রিয় করুন</string>
<string name="revanced_gradient_loading_screen_summary_on">লোডিং স্ক্রিণে একটি গ্রেডিয়েন্ড ব্যাকগ্রাউন্ড থাকবে</string>
<string name="revanced_gradient_loading_screen_summary_off">লোডিং স্ক্রিণে একটি সলিড ব্যাকগ্রাউন্ড থাকবে</string>
<string name="splash_screen_animation_style_title">স্প্ল্যাশ স্ক্রিন শৈলী</string>
<string name="splash_screen_animation_style_entry_1">রং</string>
<string name="splash_screen_animation_style_entry_2">কালো এবং সাদা</string>
<string name="revanced_seekbar_custom_color_title">সিকবারে নিজস্ব রং সক্রিয় করুন</string>
<string name="revanced_seekbar_custom_color_summary_on">সিকবারে নিজস্ব রং প্রদর্শিত হয়েছে</string>
<string name="revanced_seekbar_custom_color_summary_off">সিকবারে মূল রং প্রদর্শিত হয়েছে</string>
@@ -1394,7 +1400,7 @@ DeArrow সম্পর্কে আরও জানতে এখানে ট
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">স্পিড ডায়ালগ বোতাম দেখান</string>
<string name="revanced_playback_speed_dialog_button_summary_on">বোতাম প্রদর্শিত হয়েছে</string>
<string name="revanced_playback_speed_dialog_button_summary_on">বোতামটি দেখানো হয়েছে। প্লেব্যাক স্পীড ডিফল্টে রিসেট করতে ট্যাপ করে ধরে রাখুন।</string>
<string name="revanced_playback_speed_dialog_button_summary_off">বোতাম প্রদর্শিত হয়নি</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1406,6 +1412,7 @@ DeArrow সম্পর্কে আরও জানতে এখানে ট
<string name="revanced_custom_playback_speeds_invalid">কাস্টম গতি %s এর চেয়ে কম হতে হবে</string>
<string name="revanced_custom_playback_speeds_parse_exception">অবৈধ কাস্টম প্লেব্যাক গতি</string>
<string name="revanced_custom_playback_speeds_auto">স্বতস্ফূর্তভাবে</string>
<string name="revanced_custom_playback_speeds_reset_toast">প্লেব্যাক গতি রিসেট করা হয়েছে: %s</string>
<string name="revanced_speed_tap_and_hold_title">কাস্টম ট্যাপ এন্ড হোল্ড স্পিড</string>
<string name="revanced_speed_tap_and_hold_summary">-৮ এর মধ্যে প্লেব্যাক স্পিড</string>
</patch>

View File

@@ -311,9 +311,9 @@ No se t'informarà de cap esdeveniment inesperat."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Amaga el botó \"Crear un Short\"</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">El botó Crea un Short s\'amaga</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">El botó Crea un Short es mostra</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Amaga els botons d\'emojis i marca de temps</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Els botons d\'emojis i marca de temps s\'amaguen</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Els botons d\'emojis i marca de temps es mostren</string>
<string name="revanced_hide_comments_timestamp_button_title">Amaga el botó de marca de temps</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">S\'amaga el botó de marca de temps</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Es mostra el botó de marca de temps</string>
<string name="revanced_hide_comments_preview_comment_title">Amaga la vista prèvia del comentari</string>
<string name="revanced_hide_comments_preview_comment_summary_on">La vista prèvia del comentari s\'amaga</string>
<string name="revanced_hide_comments_preview_comment_summary_off">La vista prèvia del comentari es mostra</string>
@@ -750,6 +750,9 @@ Per mostrar el menú de la pista d'àudio, canvieu \"Suplanta els fluxos de víd
<string name="revanced_hide_shorts_location_label_title">Amaga l\'etiqueta de ubicació</string>
<string name="revanced_hide_shorts_location_label_summary_on">L\'etiqueta de ubicació està oculta</string>
<string name="revanced_hide_shorts_location_label_summary_off">L\'etiqueta de ubicació es mostra</string>
<string name="revanced_hide_shorts_preview_comment_title">Amaga el comentari de vista prèvia</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">El comentari de vista prèvia s\'ha amagat</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Es mostra la vista prèvia del comentari</string>
<string name="revanced_hide_shorts_save_sound_button_title">Amaga el botó Desa música</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">El botó de desar música està ocult</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">El botó de desar música es mostra</string>
@@ -1252,6 +1255,9 @@ Llisca per expandir o tancar"</string>
<string name="revanced_gradient_loading_screen_title">Habilita la pantalla de càrrega amb degradació</string>
<string name="revanced_gradient_loading_screen_summary_on">La pantalla de càrrega tindrà un fons de degradació</string>
<string name="revanced_gradient_loading_screen_summary_off">La pantalla de càrrega tindrà un fons sòlid</string>
<string name="splash_screen_animation_style_title">Estil de la pantalla de presentació</string>
<string name="splash_screen_animation_style_entry_1">Color</string>
<string name="splash_screen_animation_style_entry_2">Blanc i negre</string>
<string name="revanced_seekbar_custom_color_title">Habilita el color personalitzat de la barra de cerca</string>
<string name="revanced_seekbar_custom_color_summary_on">El color personalitzat de la barra de cerca es mostra</string>
<string name="revanced_seekbar_custom_color_summary_off">El color original de la barra de cerca es mostra</string>
@@ -1397,7 +1403,7 @@ Si actives aquesta opció, es poden desbloquejar qualitats de vídeo més altes"
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Mostra el botó del diàleg de velocitat</string>
<string name="revanced_playback_speed_dialog_button_summary_on">El botó es mostra</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Es mostra el botó. Toqueu i manteniu premut per restablir la velocitat de reproducció per defecte</string>
<string name="revanced_playback_speed_dialog_button_summary_off">El botó no es mostra</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1409,6 +1415,7 @@ Si actives aquesta opció, es poden desbloquejar qualitats de vídeo més altes"
<string name="revanced_custom_playback_speeds_invalid">Les velocitats personalitzades han de ser inferiors a %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Velocitats de reproducció personalitzades no vàlides</string>
<string name="revanced_custom_playback_speeds_auto">Automàtic</string>
<string name="revanced_custom_playback_speeds_reset_toast">Velocitat de reproducció restablerta a: %s</string>
<string name="revanced_speed_tap_and_hold_title">Velocitat personalitzada de mantenir premut</string>
<string name="revanced_speed_tap_and_hold_summary">Velocitat de reproducció entre 0 i 8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Nebudete informováni o žádné neočekávané události."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Skrýt tlačítko \"Vytvořit Short\"</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Tlačítko Vytvořit Short je skryté</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Tlačítko Vytvořit Short je zobrazeno</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Skrýt tlačítka emoji a časového razítka</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Tlačítka emoji a časového razítka jsou skryta</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Tlačítka emoji a časového razítka jsou zobrazena</string>
<string name="revanced_hide_comments_timestamp_button_title">Skrýt tlačítko časové osy</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Tlačítko časové osy je skryté</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Tlačítko časové osy je zobrazeno</string>
<string name="revanced_hide_comments_preview_comment_title">Skrýt náhled komentáře</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Náhled komentáře je skryt</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Náhled komentáře je zobrazen</string>
@@ -750,6 +750,9 @@ Chcete-li zobrazit nabídku zvukové stopy, změňte možnost „Zfalšovat stre
<string name="revanced_hide_shorts_location_label_title">Skrýt štítek umístění</string>
<string name="revanced_hide_shorts_location_label_summary_on">Štítek umístění je skrytý</string>
<string name="revanced_hide_shorts_location_label_summary_off">Štítek umístění je zobrazen</string>
<string name="revanced_hide_shorts_preview_comment_title">Skrýt náhled komentáře</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Náhled komentáře je skrytý</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Zobrazuje se náhled komentáře</string>
<string name="revanced_hide_shorts_save_sound_button_title">Skrýt tlačítko Uložit hudbu</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Tlačítko Uložit hudbu je skryté</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Tlačítko Uložit hudbu je zobrazeno</string>
@@ -1252,6 +1255,9 @@ Rozbalte nebo zavřete přejetím prstem"</string>
<string name="revanced_gradient_loading_screen_title">Povolit přechodovou obrazovku načítání</string>
<string name="revanced_gradient_loading_screen_summary_on">Obrazovka načítání bude mít přechodové pozadí</string>
<string name="revanced_gradient_loading_screen_summary_off">Obrazovka načítání bude mít pevné pozadí</string>
<string name="splash_screen_animation_style_title">Styl úvodní obrazovky</string>
<string name="splash_screen_animation_style_entry_1">Barva</string>
<string name="splash_screen_animation_style_entry_2">Černobílá</string>
<string name="revanced_seekbar_custom_color_title">Povolit vlastní barvu posuvníku</string>
<string name="revanced_seekbar_custom_color_summary_on">Vlasní barva posuvníku je zobrazena</string>
<string name="revanced_seekbar_custom_color_summary_off">Původní barva posuvníku je zobrazena</string>
@@ -1397,7 +1403,7 @@ Povolením této funkce lze odemknout vyšší kvality videa"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Zobrazit tlačítko dialogu rychlosti</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Tlačítko je zobrazeno</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Tlačítko je zobrazeno. Klepnutím a podržením obnovíte výchozí rychlost přehrávání</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Tlačítko se nezobrazuje</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1409,6 +1415,7 @@ Povolením této funkce lze odemknout vyšší kvality videa"</string>
<string name="revanced_custom_playback_speeds_invalid">Vlastní rychlosti musí být menší než %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Neplatné vlastní rychlosti přehrávání</string>
<string name="revanced_custom_playback_speeds_auto">Automaticky</string>
<string name="revanced_custom_playback_speeds_reset_toast">Rychlost přehrávání obnovena na: %s</string>
<string name="revanced_speed_tap_and_hold_title">Vlastní rychlost stisknutí a podržení</string>
<string name="revanced_speed_tap_and_hold_summary">Rychlost přehrávání 0 až 8</string>
</patch>

View File

@@ -169,6 +169,8 @@ Du modtager ikke notifikationer om uventede hændelser."</string>
<string name="revanced_hide_join_membership_button_summary_off">Knappen er vist</string>
<!-- 'For you' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_for_you_shelf_title">Skjul hylden \"Til dig\"</string>
<string name="revanced_hide_for_you_shelf_summary_on">Hylde på kanalsiden er skjult</string>
<string name="revanced_hide_for_you_shelf_summary_off">Hylde på kanalsiden vises</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">Skjul knappen \'Underret mig\'</string>
@@ -196,6 +198,8 @@ Du modtager ikke notifikationer om uventede hændelser."</string>
<string name="revanced_hide_chips_shelf_summary_on">Chips hylde er skjult</string>
<string name="revanced_hide_chips_shelf_summary_off">Chips hylde er vist</string>
<string name="revanced_hide_expandable_chip_title">Skjul udvidelige kort under videoer</string>
<string name="revanced_hide_expandable_chip_summary_on">Udvidelseskort er skjult</string>
<string name="revanced_hide_expandable_chip_summary_off">Udvidelseskort vises</string>
<string name="revanced_hide_community_posts_title">Skjul fællesskabs indlæg</string>
<string name="revanced_hide_community_posts_summary_on">Fællesskabs indlæg er skjult</string>
<string name="revanced_hide_community_posts_summary_off">Fællesskabs indlæg er vist</string>
@@ -211,6 +215,7 @@ Du modtager ikke notifikationer om uventede hændelser."</string>
<string name="revanced_hide_community_guidelines_title">Skjul fællesskabs retningslinjer</string>
<string name="revanced_hide_community_guidelines_summary_on">Fællesskabets retningslinjer er skjult</string>
<string name="revanced_hide_community_guidelines_summary_off">Der er opstillet EF-retningslinjer</string>
<string name="revanced_hide_subscribers_community_guidelines_title">Skjul retningslinjer for abonnenter</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_on">Abonnenter community retningslinjer er skjult</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_off">Abonnenter community retningslinjer er vist</string>
<string name="revanced_hide_channel_member_shelf_title">Skjul kanalmedlems hylde</string>
@@ -255,10 +260,25 @@ Du modtager ikke notifikationer om uventede hændelser."</string>
<string name="revanced_hide_ask_section_title">Skjul Spørg</string>
<string name="revanced_hide_ask_section_summary_on">Spørgsmål sektionen er skjult</string>
<string name="revanced_hide_ask_section_summary_off">Spørgsmål sektionen vises</string>
<string name="revanced_hide_attributes_section_title">Skjul attributter</string>
<string name="revanced_hide_attributes_section_summary_on">Fremhævede steder, spil, musik og sektioner med omtalte personer er skjult</string>
<string name="revanced_hide_attributes_section_summary_off">Fremhævede steder, spil, musik og sektioner med omtalte personer vises</string>
<string name="revanced_hide_chapters_section_title">Skjul kapitler</string>
<string name="revanced_hide_chapters_section_summary_on">Kapitler sektion er skjult</string>
<string name="revanced_hide_chapters_section_summary_off">Kapitel afsnit er vist</string>
<string name="revanced_hide_how_this_was_made_section_title">Skjul \"Hvordan dette indhold blev lavet\"</string>
<string name="revanced_hide_how_this_was_made_section_summary_on">Sektionen Sådan blev dette indhold lavet er skjult</string>
<string name="revanced_hide_how_this_was_made_section_summary_off">Sektionen Sådan blev dette indhold lavet vises</string>
<string name="revanced_hide_podcast_section_title">Skjul \"Udforsk podcasten\"</string>
<string name="revanced_hide_podcast_section_summary_on">Sektionen Udforsk podcasten er skjult</string>
<string name="revanced_hide_podcast_section_summary_off">Sektionen Udforsk podcasten vises</string>
<string name="revanced_hide_info_cards_section_title">Skjul infokort</string>
<string name="revanced_hide_info_cards_section_summary_on">Info-kort sektion er skjult</string>
<string name="revanced_hide_info_cards_section_summary_off">Info-kort sektion er vist</string>
<string name="revanced_hide_key_concepts_section_title">Skjul \"Nøglebegreber\"</string>
<string name="revanced_hide_key_concepts_section_summary_on">Nøglebegrebssektionen er skjult</string>
<string name="revanced_hide_key_concepts_section_summary_off">Nøglebegrebssektionen vises</string>
<string name="revanced_hide_transcript_section_title">Skjul udskrift</string>
<string name="revanced_hide_transcript_section_summary_on">Afsnittet er skjult</string>
<string name="revanced_hide_transcript_section_summary_off">Afsnittet er vist</string>
<string name="revanced_hide_description_components_screen_title">Video beskrivelse</string>
@@ -283,10 +303,17 @@ Du modtager ikke notifikationer om uventede hændelser."</string>
<string name="revanced_hide_comments_ai_summary_summary_on">Kommentar-oversigt er skjult</string>
<string name="revanced_hide_comments_ai_summary_summary_off">Kommentar-oversigt er vist</string>
<string name="revanced_hide_comments_by_members_header_title">Skjul \'Kommentarer fra medlemmer\' header</string>
<string name="revanced_hide_comments_by_members_header_summary_on">Kommentarer fra medlemmers overskrift er skjult</string>
<string name="revanced_hide_comments_by_members_header_summary_off">Kommentarer fra medlemmers overskrift vises</string>
<string name="revanced_hide_comments_section_title">Skjul kommentarsektion</string>
<string name="revanced_hide_comments_section_summary_on">Kommentarer sektion er skjult</string>
<string name="revanced_hide_comments_section_summary_off">Kommentarer sektion er vist</string>
<string name="revanced_hide_comments_create_a_short_button_title">Skjul knappen \"Opret en Short\"</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Opret en Short knap er skjult</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Opret en Short knap vises</string>
<string name="revanced_hide_comments_timestamp_button_title">Skjul tidsstempelknap</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Tidsstempelknappen er skjult</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Tidsstempelknappen vises</string>
<string name="revanced_hide_comments_preview_comment_title">Skjul forhåndsvisning kommentar</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Forhåndsvisning kommentar er skjult</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Forhåndsvis kommentar er vist</string>
@@ -370,8 +397,12 @@ Denne funktion er kun tilgængelig for ældre enheder"</string>
<string name="revanced_hide_player_store_shelf_summary_on">Shopping hylde er skjult</string>
<string name="revanced_hide_player_store_shelf_summary_off">Shopping hylde er vist</string>
<string name="revanced_hide_shopping_links_title">Skjul shopping links i video beskrivelse</string>
<string name="revanced_hide_shopping_links_summary_on">Shopping links i videobeskrivelsen er skjult</string>
<string name="revanced_hide_shopping_links_summary_off">Shopping links i videobeskrivelsen vises</string>
<!-- 'Visit store' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_visit_store_button_title">Skjul knappen \'Besøg butik\' på kanalsider</string>
<string name="revanced_hide_visit_store_button_summary_on">Knap på kanalsiden er skjult</string>
<string name="revanced_hide_visit_store_button_summary_off">Knap på kanalsiden vises</string>
<string name="revanced_hide_web_search_results_title">Skjul søgeresultater</string>
<string name="revanced_hide_web_search_results_summary_on">Websøgeresultater er skjult</string>
<string name="revanced_hide_web_search_results_summary_off">Websøgeresultater vises</string>
@@ -411,6 +442,8 @@ Denne funktion er kun tilgængelig for ældre enheder"</string>
<string name="revanced_external_downloader_screen_title">Eksterne downloads</string>
<string name="revanced_external_downloader_screen_summary">Indstillinger for brug af en ekstern downloader</string>
<string name="revanced_external_downloader_title">Vis ekstern download-knap</string>
<string name="revanced_external_downloader_summary_on">Download-knappen i afspilleren vises</string>
<string name="revanced_external_downloader_summary_off">Download-knappen i afspilleren vises ikke</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">Overskriv knappen Download-handling</string>
<string name="revanced_external_downloader_action_button_summary_on">Download-knappen åbner din eksterne downloader</string>
@@ -489,6 +522,7 @@ Juster lydstyrken ved at swipe lodret i højre side af skærmen"</string>
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">Handlingsknapper</string>
<string name="revanced_hide_buttons_screen_summary">Skjul eller vis knapper under videoer</string>
<string name="revanced_disable_like_subscribe_glow_title">Deaktiver Like og Abonner-knappen glød</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Lykke- og abonnér-knappen gløder ikke, når den nævnes</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Lykke- og abonnér-knappen gløder, når den nævnes</string>
<string name="revanced_hide_like_dislike_button_title">Skjul Like og Dislike</string>
@@ -716,6 +750,9 @@ For at vise lydspormenuen skal du ændre \"Spoof videostream\" til iOS TV"</stri
<string name="revanced_hide_shorts_location_label_title">Skjul placeringsetiket</string>
<string name="revanced_hide_shorts_location_label_summary_on">Placeringsetiket er skjult</string>
<string name="revanced_hide_shorts_location_label_summary_off">Placeringsetiket er vist</string>
<string name="revanced_hide_shorts_preview_comment_title">Skjul forhåndsvisning af kommentar</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Forhåndsvisning af kommentar er skjult</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Forhåndsvisningskommentar vises</string>
<string name="revanced_hide_shorts_save_sound_button_title">Skjul knappen Gem musik</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Gem musik knap er skjult</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Gem musik knap er vist</string>
@@ -823,6 +860,7 @@ Indstillinger → Afspilning → Afspil næste video automatisk"</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">Dislikerer midlertidigt ikke tilgængelig (API-timeout ud)</string>
<string name="revanced_ryd_failure_connection_status_code">Dislikationer er ikke tilgængelige (status %d)</string>
<string name="revanced_ryd_failure_client_rate_limit_requested">Synes ikke godt om er ikke tilgængelige (klient API-grænse)</string>
<string name="revanced_ryd_failure_generic">Dislikationer ikke tilgængelige (%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">Genindlæs video for at stemme ved hjælp af Return YouTube Dislike</string>
@@ -831,7 +869,13 @@ Indstillinger → Afspilning → Afspil næste video automatisk"</string>
<string name="revanced_ryd_enabled_summary_on">Dislikationer vises</string>
<string name="revanced_ryd_enabled_summary_off">Dislikationer vises ikke</string>
<string name="revanced_ryd_shorts_title">Vis ikke på Shorts</string>
<string name="revanced_ryd_shorts_summary_on">"Synes ikke godt om på Shorts vises
Begrænsning: Synes ikke godt om vises muligvis ikke i inkognitotilstand"</string>
<string name="revanced_ryd_shorts_summary_off">Synes ikke godt om på Shorts vises ikke</string>
<string name="revanced_ryd_dislike_percentage_title">Synes ikke som procent</string>
<string name="revanced_ryd_dislike_percentage_summary_on">Synes ikke godt om vises som en procentdel</string>
<string name="revanced_ryd_dislike_percentage_summary_off">Synes ikke godt om vises som et tal</string>
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button' -->
<string name="revanced_ryd_compact_layout_title">Kompakt like-knap</string>
<string name="revanced_ryd_compact_layout_summary_on">Lideknap stylet for mindste bredde</string>
@@ -892,15 +936,20 @@ Denne funktion fungerer bedst med en videokvalitet på 720p eller lavere og ved
<string name="revanced_sb_square_layout_sum_on">Knapper og kontrolelementer er firkantede</string>
<string name="revanced_sb_square_layout_sum_off">Knapper og kontrolelementer er afrundede</string>
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title' -->
<string name="revanced_sb_enable_compact_skip_button">Brug kompakt Spring over-knap</string>
<string name="revanced_sb_enable_compact_skip_button_sum_on">Skip knap stylet for mindste bredde</string>
<string name="revanced_sb_enable_compact_skip_button_sum_off">Skip knap stylet for bedste udseende</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button">Skjul automatisk Spring over-knap</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_on">Skip knap skjuler efter et par sekunder</string>
<string name="revanced_sb_enable_auto_hide_skip_segment_button_sum_off">Spring over-knappen vises for hele segmentet</string>
<string name="revanced_sb_general_skiptoast">Vis en toast ved spring</string>
<string name="revanced_sb_general_skiptoast_sum_on">Toast vises, når et segment automatisk springes over. Tryk her for at se et eksempel</string>
<string name="revanced_sb_general_skiptoast_sum_off">Toast er ikke vist. Tryk her for at se et eksempel</string>
<string name="revanced_sb_general_time_without">Vis videolængde uden segmenter</string>
<string name="revanced_sb_general_time_without_sum_on">Videolængde minus alle segmenter, vist i parentes ved siden af den fulde videolængde</string>
<string name="revanced_sb_general_time_without_sum_off">Fuld videolængde vist</string>
<string name="revanced_sb_create_segment_category">Opretter nye segmenter</string>
<string name="revanced_sb_enable_create_segment">Vis Opret nyt segment-knap</string>
<string name="revanced_sb_enable_create_segment_sum_on">Opret ny segmentknap vises</string>
<string name="revanced_sb_enable_create_segment_sum_off">Opret ny segmentknap vises ikke</string>
<string name="revanced_sb_general_adjusting">Juster nyt segment trin</string>
@@ -994,6 +1043,7 @@ Dit bruger-id er som en adgangskode, og det må aldrig deles.
<string name="revanced_sb_skipped_multiple_segments">Oversprunget over flere segmenter</string>
<string name="revanced_sb_skip_automatically">Spring automatisk over</string>
<string name="revanced_sb_skip_automatically_once">Spring automatisk over én gang</string>
<string name="revanced_sb_skip_showbutton">Vis en Spring over-knap</string>
<string name="revanced_sb_skip_seekbaronly">Vis i søgelinjen</string>
<string name="revanced_sb_skip_ignore">Deaktivér</string>
<string name="revanced_sb_submit_failed_invalid">Kan ikke indsende segment: %s</string>
@@ -1021,6 +1071,9 @@ Eksisterer allerede"</string>
<string name="revanced_sb_new_segment_disabled_category">Kategori er deaktiveret i indstillinger. Aktivér kategori for at indsende.</string>
<string name="revanced_sb_new_segment_title">Nyt SponsorBlock segment</string>
<string name="revanced_sb_new_segment_mark_time_as_question">Sæt %s som start eller afslutning af et nyt segment?</string>
<string name="revanced_sb_new_segment_mark_start">Start</string>
<string name="revanced_sb_new_segment_mark_end">Slut</string>
<string name="revanced_sb_new_segment_now">Nu</string>
<string name="revanced_sb_new_segment_time_start">Tidspunkt for segmentet begynder på</string>
<string name="revanced_sb_new_segment_time_end">Tidspunkt for segmentet slutter på</string>
<string name="revanced_sb_new_segment_confirm_title">Er tiderne korrekte?</string>
@@ -1041,6 +1094,7 @@ Er du klar til at indsende?"</string>
<string name="revanced_sb_new_segment_edit_by_hand_parse_error">Ugyldig tid givet</string>
<string name="revanced_sb_stats_title">Statistik</string>
<!-- Shown in the settings preferences, and translations can be any text length. -->
<string name="revanced_sb_stats_connection_failure">Statistikker er midlertidigt ikke tilgængelige (API er nede)</string>
<string name="revanced_sb_stats_loading">Indlæser...</string>
<string name="revanced_sb_stats_sb_disabled">SponsorBloker er deaktiveret</string>
<string name="revanced_sb_stats_username">Dit brugernavn: &lt;b&gt;%s&lt;/b&gt;</string>
@@ -1093,6 +1147,7 @@ Hvis det senere slås fra, anbefales det at rydde app-dataene for at forhindre U
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">Spoof app version mål</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - Gendan gamle Shorts player ikoner</string>
<string name="revanced_spoof_app_version_target_entry_2">19.01.34 - Gendan gamle navigationsikoner</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Skift startside</string>
@@ -1201,6 +1256,9 @@ Stryg for at udvide eller lukke"</string>
<string name="revanced_gradient_loading_screen_title">Aktiver gradient indlæsning af skærmen</string>
<string name="revanced_gradient_loading_screen_summary_on">Indlæser skærmen vil have en gradient baggrund</string>
<string name="revanced_gradient_loading_screen_summary_off">Indlæser skærmen vil have en solid baggrund</string>
<string name="splash_screen_animation_style_title">Splash screens udseende</string>
<string name="splash_screen_animation_style_entry_1">Farve</string>
<string name="splash_screen_animation_style_entry_2">Sort og hvid</string>
<string name="revanced_seekbar_custom_color_title">Aktivér brugerdefineret søgelinjefarve</string>
<string name="revanced_seekbar_custom_color_summary_on">Brugerdefineret søgelinje farve vises</string>
<string name="revanced_seekbar_custom_color_summary_off">Original søgelinje farve vises</string>
@@ -1250,9 +1308,13 @@ Tryk her for at lære mere om DeArrow"</string>
<string name="revanced_alt_thumbnail_stills_time_entry_2">Midten af video</string>
<string name="revanced_alt_thumbnail_stills_time_entry_3">Slut på video</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 er midlertidigt ikke tilgængelig (statuskode: %s)</string>
<string name="revanced_alt_thumbnail_dearrow_error_generic">DeArrow er midlertidigt ikke tilgængelig</string>
</patch>
<patch id="misc.announcements.announcementsPatch">
<string name="revanced_announcements_title">Vis ReVanced meddelelser</string>
<string name="revanced_announcements_summary_on">Meddelelser ved opstart vises</string>
<string name="revanced_announcements_summary_off">Meddelelser ved opstart vises ikke</string>
<string name="revanced_announcements_enabled_summary">Vis meddelelser ved opstart</string>
<string name="revanced_announcements_connection_failed">Kunne ikke forbinde til udbyder af annonceringer</string>
<string name="revanced_announcements_dialog_dismiss">Luk</string>
@@ -1342,7 +1404,7 @@ Aktivering af dette kan låse op for højere videokvalitet"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Vis hastigheds dialogknap</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Knap vises</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Knappen vises. Tryk og hold for at nulstille afspilningshastigheden til standard.</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Knap vises ikke</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1354,6 +1416,7 @@ Aktivering af dette kan låse op for højere videokvalitet"</string>
<string name="revanced_custom_playback_speeds_invalid">Brugerdefinerede hastigheder skal være mindre end %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Ugyldige brugerdefinerede afspilningshastigheder</string>
<string name="revanced_custom_playback_speeds_auto">Automatisk</string>
<string name="revanced_custom_playback_speeds_reset_toast">Afspilningshastighed nulstillet til: %s</string>
<string name="revanced_speed_tap_and_hold_title">Brugerdefineret hastighed, når du holder den nede</string>
<string name="revanced_speed_tap_and_hold_summary">Afspilningshastighed mellem 0-8</string>
</patch>

View File

@@ -307,9 +307,9 @@ Sie werden nicht über unerwartete Ereignisse informiert."</string>
<string name="revanced_hide_comments_create_a_short_button_title">\'Verknüpfung erstellen\'-Button ausblenden</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Schaltfläche \" Short erstellen\" ist ausgeblendet</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Schaltfläche \" Short erstellen\" wird angezeigt</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Emoji- und Zeitstempel-Buttons ausblenden</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Emoji- und Zeitstempel-Buttons sind ausgeblendet</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Emoji- und Zeitstempel-Buttons werden angezeigt</string>
<string name="revanced_hide_comments_timestamp_button_title">Timestamp-Button ausblenden</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Timestamp-Button ist ausgeblendet</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Timestamp-Button wird angezeigt</string>
<string name="revanced_hide_comments_preview_comment_title">Vorschaukommentar ausblenden</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Vorschaukommentar ist ausgeblendet</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Vorschau des Kommentars wird angezeigt</string>
@@ -743,6 +743,9 @@ Um das Audiotrack-Menü anzuzeigen, ändere \"Video-Streams fälschen\" zu iOS T
<string name="revanced_hide_shorts_location_label_title">Standortbezeichnung ausblenden</string>
<string name="revanced_hide_shorts_location_label_summary_on">Ortsbezeichnung ist ausgeblendet</string>
<string name="revanced_hide_shorts_location_label_summary_off">Ortsbezeichnung wird angezeigt</string>
<string name="revanced_hide_shorts_preview_comment_title">Kommentarvorschau ausblenden</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Vorschaukommentar ist ausgeblendet</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Vorschaukommentar wird angezeigt</string>
<string name="revanced_hide_shorts_save_sound_button_title">\'Musik speichern\'-Button ausblenden</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Musikspeicher Button ist ausgeblendet</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Musikspeicher Button wird angezeigt</string>
@@ -1246,6 +1249,9 @@ Zum Erweitern oder Schließen wischen"</string>
<string name="revanced_gradient_loading_screen_title">Gradientenladebildschirm aktivieren</string>
<string name="revanced_gradient_loading_screen_summary_on">Lade Bildschirm hat einen Farbverlauf Hintergrund</string>
<string name="revanced_gradient_loading_screen_summary_off">Das Laden des Bildschirms wird einen soliden Hintergrund haben</string>
<string name="splash_screen_animation_style_title">Art des Begrüßungsbildschirms</string>
<string name="splash_screen_animation_style_entry_1">Farbe</string>
<string name="splash_screen_animation_style_entry_2">Schwarz und Weiß</string>
<string name="revanced_seekbar_custom_color_title">Eigene Suchleistenfarbe aktivieren</string>
<string name="revanced_seekbar_custom_color_summary_on">Angepasste Suchleistenfarbe wird angezeigt</string>
<string name="revanced_seekbar_custom_color_summary_off">Originalfarbe der Suchleiste wird angezeigt</string>
@@ -1391,7 +1397,7 @@ Durch Aktivieren dieser Option können höhere Videoqualitäten freigeschaltet w
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Zeige Geschwindigkeitsdialog Taste</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Button wird angezeigt</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Die Schaltfläche wird angezeigt. Tippen und halten, um die Wiedergabegeschwindigkeit auf die Standardeinstellung zurückzusetzen.</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Button wird nicht angezeigt</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1403,6 +1409,7 @@ Durch Aktivieren dieser Option können höhere Videoqualitäten freigeschaltet w
<string name="revanced_custom_playback_speeds_invalid">Benutzerdefinierte Geschwindigkeiten müssen kleiner als %s sein</string>
<string name="revanced_custom_playback_speeds_parse_exception">Ungültige benutzerdefinierte Wiedergabegeschwindigkeiten</string>
<string name="revanced_custom_playback_speeds_auto">Autom</string>
<string name="revanced_custom_playback_speeds_reset_toast">Wiedergabegeschwindigkeit zurückgesetzt auf: %s</string>
<string name="revanced_speed_tap_and_hold_title">Benutzerdefinierte Geschwindigkeit bei Tippen und Halten</string>
<string name="revanced_speed_tap_and_hold_summary">Abspielgeschwindigkeit zwischen 0-8x</string>
</patch>

View File

@@ -313,9 +313,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_comments_create_a_short_button_title">Κουμπί «Δημιουργία Short»</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Κρυμμένο</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Κουμπιά χρονοσήμανσης και emoji</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Κρυμμένα</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Εμφανίζονται</string>
<string name="revanced_hide_comments_timestamp_button_title">Απόκρυψη κουμπιού χρονοσήμανσης</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Το κουμπί χρονοσήμανσης είναι κρυφό</string>
<string name="revanced_hide_comments_timestamp_button_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>
@@ -752,6 +752,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_location_label_title">Ετικέτα τοποθεσίας</string>
<string name="revanced_hide_shorts_location_label_summary_on">Κρυμμένη</string>
<string name="revanced_hide_shorts_location_label_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_shorts_preview_comment_title">Απόκρυψη προεπισκόπησης σχολίου</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Το σχόλιο προεπισκόπησης είναι κρυφό</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Εμφανίζεται η προεπισκόπηση του σχολίου</string>
<string name="revanced_hide_shorts_save_sound_button_title">Κουμπί «Αποθήκευση μουσικής»</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Κρυμμένο</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Εμφανίζεται</string>
@@ -1254,6 +1257,9 @@ Second \"item\" text"</string>
<string name="revanced_gradient_loading_screen_title">Διαβάθμιση οθόνης φόρτωσης</string>
<string name="revanced_gradient_loading_screen_summary_on">Η οθόνη φόρτωσης θα έχει σταδιακές αποχρώσεις φόντο</string>
<string name="revanced_gradient_loading_screen_summary_off">Η οθόνη φόρτωσης θα έχει στατική απόχρωση φόντο</string>
<string name="splash_screen_animation_style_title">Στυλ οθόνης εκκίνησης</string>
<string name="splash_screen_animation_style_entry_1">Χρώμα</string>
<string name="splash_screen_animation_style_entry_2">Μαύρο και άσπρο</string>
<string name="revanced_seekbar_custom_color_title">Προσαρμοσμένο χρώμα γραμμής προόδου</string>
<string name="revanced_seekbar_custom_color_summary_on">Η γραμμή προόδου εμφανίζεται με προσαρμοσμένο χρώμα</string>
<string name="revanced_seekbar_custom_color_summary_off">Η γραμμή προόδου εμφανίζεται με το αρχικό χρώμα</string>
@@ -1397,7 +1403,7 @@ Second \"item\" text"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Εμφάνιση κουμπιού αλλαγής ταχύτητας</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Το κουμπί εμφανίζεται</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Το κουμπί εμφανίζεται. Πατήστε παρατεταμένα για επαναφορά της ταχύτητας αναπαραγωγής στην προεπιλογή</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Το κουμπί δεν εμφανίζεται</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1409,6 +1415,7 @@ Second \"item\" text"</string>
<string name="revanced_custom_playback_speeds_invalid">Οι ταχύτητες πρέπει να είναι μικρότερες από %sx</string>
<string name="revanced_custom_playback_speeds_parse_exception">Μη έγκυρες προσαρμοσμένες ταχύτητες αναπαραγωγής</string>
<string name="revanced_custom_playback_speeds_auto">Αυτόματη</string>
<string name="revanced_custom_playback_speeds_reset_toast">Η ταχύτητα αναπαραγωγής επαναφέρθηκε σε: %s</string>
<string name="revanced_speed_tap_and_hold_title">Προσαρμοσμένη ταχύτητα παρατεταμένου πατήματος</string>
<string name="revanced_speed_tap_and_hold_summary">Ταχύτητα αναπαραγωγής μεταξύ 0-8</string>
</patch>

View File

@@ -308,9 +308,9 @@ Sin embargo, si activas esto, también se registrarán algunos datos del usuario
<string name="revanced_hide_comments_create_a_short_button_title">Ocultar botón \'Crear un Short\'</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">El botón Crear un Short está oculto</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Se muestra el botón Crear un Short</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Ocultar los botones de emoji y marca de tiempo</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Los botones de emoji y marca de tiempo están ocultos</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Se muestran los botones de emoji y marca de tiempo</string>
<string name="revanced_hide_comments_timestamp_button_title">Ocultar botón de marca de tiempo</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Botón de marca de tiempo oculto</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Botón de marca de tiempo mostrado</string>
<string name="revanced_hide_comments_preview_comment_title">Ocultar comentario de vista previa</string>
<string name="revanced_hide_comments_preview_comment_summary_on">El comentario de la vista previa está oculto</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Vista previa del comentario se muestra</string>
@@ -747,6 +747,9 @@ Para mostrar el menú de la pista de audio, cambia \"Suplantar transmisiones de
<string name="revanced_hide_shorts_location_label_title">Ocultar etiqueta de ubicación</string>
<string name="revanced_hide_shorts_location_label_summary_on">Etiqueta de ubicación oculta</string>
<string name="revanced_hide_shorts_location_label_summary_off">Etiqueta de ubicación mostrada</string>
<string name="revanced_hide_shorts_preview_comment_title">Ocultar comentario de vista previa</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">El comentario de vista previa está oculto</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Se muestra la vista previa del comentario</string>
<string name="revanced_hide_shorts_save_sound_button_title">Ocultar el botón Guardar música</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">El botón Guardar música está oculto</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Mostrar el botón de guardar música</string>
@@ -1241,6 +1244,9 @@ Desliza el dedo para expandir o cerrar"</string>
<string name="revanced_gradient_loading_screen_title">Activar la pantalla de carga del degradado</string>
<string name="revanced_gradient_loading_screen_summary_on">La pantalla de carga tendrá un fondo de degradado</string>
<string name="revanced_gradient_loading_screen_summary_off">La pantalla de carga tendrá un fondo sólido</string>
<string name="splash_screen_animation_style_title">Estilo de la pantalla de presentación</string>
<string name="splash_screen_animation_style_entry_1">Color</string>
<string name="splash_screen_animation_style_entry_2">Blanco y negro</string>
<string name="revanced_seekbar_custom_color_title">Activar el color personalizado de la barra de búsqueda</string>
<string name="revanced_seekbar_custom_color_summary_on">Se muestra el color personalizado de la barra de búsqueda</string>
<string name="revanced_seekbar_custom_color_summary_off">Se muestra el color original de la barra de búsqueda</string>
@@ -1386,7 +1392,7 @@ Habilitar esto puede desbloquear calidades de vídeo más altas"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Mostrar botón de diálogo de velocidad</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Se muestra el botón</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Se muestra el botón. Mantén pulsado para restablecer la velocidad de reproducción predeterminada</string>
<string name="revanced_playback_speed_dialog_button_summary_off">El botón no se muestra</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1398,6 +1404,7 @@ Habilitar esto puede desbloquear calidades de vídeo más altas"</string>
<string name="revanced_custom_playback_speeds_invalid">Las velocidades personalizadas deben ser menores que %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Velocidades de reproducción personalizadas no válidas</string>
<string name="revanced_custom_playback_speeds_auto">Automático</string>
<string name="revanced_custom_playback_speeds_reset_toast">Velocidad de reproducción restablecida a: %s</string>
<string name="revanced_speed_tap_and_hold_title">Velocidad personalizada al tocar y mantener</string>
<string name="revanced_speed_tap_and_hold_summary">Velocidad de reproducción entre 0-8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Teid ei teavitata ühestki ootamatust sündmusest."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Peida nupp \"Loo lühis\"</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Nupp Loo lühivideo on peidetud</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Nupp Loo lühivideo on kuvatud</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Peida emotikonide ja ajatempli nupud</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Emotikonide ja ajatempli nupud on peidetud</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Emotikonide ja ajatempli nupud on kuvatud</string>
<string name="revanced_hide_comments_timestamp_button_title">Peida ajatempli nupp</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Ajatempli nupp on peidetud</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Ajatempli nupp on nähtav</string>
<string name="revanced_hide_comments_preview_comment_title">Peida eelvaate kommentaar</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Eelvaate kommentaar on peidetud</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Eelvaate kommentaar on kuvatud</string>
@@ -750,6 +750,9 @@ Heliriba menüü kuvamiseks muutke valikut „Võltsitud videovoogedastus“ vä
<string name="revanced_hide_shorts_location_label_title">Peida asukoha silt</string>
<string name="revanced_hide_shorts_location_label_summary_on">Asukoha silt on peidetud</string>
<string name="revanced_hide_shorts_location_label_summary_off">Asukoha silt on nähtav</string>
<string name="revanced_hide_shorts_preview_comment_title">Peida eelvaate kommentaar</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Kommentaari eelvaade on peidetud</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Kommentaari eelvaade on nähtav</string>
<string name="revanced_hide_shorts_save_sound_button_title">Peida Salvesta muusika nupp</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Muusika salvestamise nupp on peidetud</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Muusika salvestamise nupp on nähtav</string>
@@ -1253,6 +1256,9 @@ Laiendamiseks või sulgemiseks libista"</string>
<string name="revanced_gradient_loading_screen_title">Lülita gradientega laadimiskuva sisse</string>
<string name="revanced_gradient_loading_screen_summary_on">Laadimiskuval on gradientega taust</string>
<string name="revanced_gradient_loading_screen_summary_off">Laadimiskuval on tahke taust</string>
<string name="splash_screen_animation_style_title">Sissejuhatava ekraani stiil</string>
<string name="splash_screen_animation_style_entry_1">Värv</string>
<string name="splash_screen_animation_style_entry_2">Mustvalge</string>
<string name="revanced_seekbar_custom_color_title">Lülita kohandatud edastusriba värv sisse</string>
<string name="revanced_seekbar_custom_color_summary_on">Kohandatud edastusriba värv on nähtav</string>
<string name="revanced_seekbar_custom_color_summary_off">Originaal edastusriba värv on nähtav</string>
@@ -1398,7 +1404,7 @@ Selle lubamine võib avada kõrgema video kvaliteedi"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Kuva kiiruse dialoogi nupp</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Nupp kuvatakse</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Nupp on nähtaval. Puudutage ja hoidke all, et taastada taasesituse kiirus vaikeväärtusele</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Nuppi ei kuvata</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1410,6 +1416,7 @@ Selle lubamine võib avada kõrgema video kvaliteedi"</string>
<string name="revanced_custom_playback_speeds_invalid">Kohandatud kiirused peavad olema alla %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Kehtetud kohandatud video taasesituse kiirused</string>
<string name="revanced_custom_playback_speeds_auto">Automaatne</string>
<string name="revanced_custom_playback_speeds_reset_toast">Taasesituse kiirus on lähtestatud: %s</string>
<string name="revanced_speed_tap_and_hold_title">Kohandatud puuduta ja hoia kiiruse tase</string>
<string name="revanced_speed_tap_and_hold_summary">Taasesituse kiirus vahemikus 0-8</string>
</patch>

View File

@@ -88,9 +88,13 @@ Second \"item\" text"</string>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- '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_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. -->
<!-- '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_summary_on">دکمه پنهان است</string>
<string name="revanced_hide_notify_me_button_summary_off">دکمه نمایان است</string>
<!-- 'People also watched' and 'You might also like' 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. -->
@@ -210,9 +214,12 @@ Second \"item\" text"</string>
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<!-- Translations should use language similar to 'revanced_ryd_compact_layout_title' -->
<string name="revanced_sb_general">عمومی</string>
<string name="revanced_sb_settings_copy">رونوشت‌</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. -->
<!-- A segment start and end time, such as "02:10 to 03:40" -->
<!-- Shown in the settings preferences, and translations can be any text length. -->
<string name="revanced_sb_about_title">درباره</string>
</patch>
<patch id="layout.formfactor.changeFormFactorPatch">
</patch>
@@ -296,6 +303,10 @@ Second \"item\" text"</string>
<!-- Twitch specific internal debug mode, and not the same as 'revanced_debug_title' -->
</patch>
<patch id="misc.settings.settingsPatch">
<string name="revanced_about_title">درباره</string>
<string name="revanced_twitch_debug_title">گزارش عیب</string>
<string name="revanced_twitch_debug_summary_on">لاگ عیب فعال است</string>
<string name="revanced_twitch_debug_summary_off">لاگ عیب غیرفعال است</string>
</patch>
</app>
</resources>

View File

@@ -117,7 +117,7 @@ Napauta jatka-painiketta ja salli optimoinnin muutokset."</string>
<string name="revanced_debug_protobuffer_title">Loki protokollan puskuri</string>
<string name="revanced_debug_protobuffer_summary_on">Virheenkorjauslokit sisältävät proto-puskurin</string>
<string name="revanced_debug_protobuffer_summary_off">Virheenkorjauslokit eivät sisällä proto-puskuria</string>
<string name="revanced_debug_protobuffer_user_dialog_message">"Tämän asetuksen käyttöönotto kirjaa lisätietoja asettelusta, mm. joidenkin käyttöliittymäkomponenttien näyttötekstiä.
<string name="revanced_debug_protobuffer_user_dialog_message">"Tämän asetuksen käyttöönotto kirjaa lisätietoja asettelusta, mm. joidenkin käyttöliittymän osien näyttötekstiä.
Tämä voi auttaa komponenttien tunnistamisessa, kun luot mukautettuja suodattimia.
@@ -311,9 +311,6 @@ Et saa ilmoituksia odottamattomista tapahtumista."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Piilota \"Luo Shorts-video\" -painike</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Luo Shorts-video -painike on piilotettu</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Luo Shorts-video -painike näytetään</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Piilota emoji- ja aikaleima-painikkeet</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Emoji- ja aikaleima-painikkeet on piilotettu</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Emoji- ja aikaleima-painikkeet näytetään</string>
<string name="revanced_hide_comments_preview_comment_title">Piilota kommentin esikatselu</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Kommentin esikatselu on piilotettu</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Kommentin esikatselu näytetään</string>
@@ -327,15 +324,15 @@ Et saa ilmoituksia odottamattomista tapahtumista."</string>
<string name="revanced_hide_doodles_user_dialog_message">"YouTube Doodlet näkyvät muutamana päivänä vuodessa.
Jos Doodle näkyy tällä hetkellä alueellasi ja tämä piilotusasetus on käytössä, myös hakupalkin alla oleva suodatinpalkki piilotetaan."</string>
<string name="revanced_custom_filter_screen_title">Oma suodatin</string>
<string name="revanced_custom_filter_screen_summary">Piilota osia omilla suodattimilla</string>
<string name="revanced_custom_filter_title">Ota oma suodatin käyttöön</string>
<string name="revanced_custom_filter_summary_on">Oma suodatin on käytössä</string>
<string name="revanced_custom_filter_summary_off">Oma suodatin ei ole käytössä</string>
<string name="revanced_custom_filter_strings_title">Oma suodatin</string>
<string name="revanced_custom_filter_screen_title">Mukautettu suodatin</string>
<string name="revanced_custom_filter_screen_summary">Piilota osia mukautetuilla suodattimilla</string>
<string name="revanced_custom_filter_title">Ota mukautettu suodatin käyttöön</string>
<string name="revanced_custom_filter_summary_on">Mukautettu suodatin on käytössä</string>
<string name="revanced_custom_filter_summary_off">Mukautettu suodatin ei ole käytössä</string>
<string name="revanced_custom_filter_strings_title">Mukautettu suodatin</string>
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<string name="revanced_custom_filter_strings_summary">Luettelo komponentin polun rakentajan merkkijonoista suodatettavaksi uudella rivillä erotettuna</string>
<string name="revanced_custom_filter_toast_invalid_syntax">Virheellinen oma suodatin: %s</string>
<string name="revanced_custom_filter_toast_invalid_syntax">Virheellinen mukautettu suodatin: %s</string>
<string name="revanced_hide_keyword_content_screen_title">Piilota sisältöä avainsanojen mukaan</string>
<string name="revanced_hide_keyword_content_screen_summary">Piilota haku- ja syötevideoita avainsanasuodattimilla</string>
<string name="revanced_hide_keyword_content_home_title">Piilota koti-videoita avainsanojen mukaan</string>
@@ -750,6 +747,9 @@ Jos haluat nähdä sen, aseta \"Naamioi videovirrat\" iOS TV:ksi"</string>
<string name="revanced_hide_shorts_location_label_title">Piilota sijaintitieto</string>
<string name="revanced_hide_shorts_location_label_summary_on">Sijaintitieto on piilotettu</string>
<string name="revanced_hide_shorts_location_label_summary_off">Sijaintitieto näytetään</string>
<string name="revanced_hide_shorts_preview_comment_title">Piilota kommentin esikatselu</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Kommentin esikatselu on piilotettu</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Kommentin esikatselu näytetään</string>
<string name="revanced_hide_shorts_save_sound_button_title">Piilota Tallenna musiikki -painike</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Tallenna musiikki -painike on piilotettu</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Tallenna musiikki -painike näytetään</string>
@@ -1253,12 +1253,13 @@ Pyyhkäise laajentaaksesi tai sulkeaksesi"</string>
<string name="revanced_gradient_loading_screen_title">Ota liukuvärillinen latausruutu käyttöön</string>
<string name="revanced_gradient_loading_screen_summary_on">Latausruudulla on liukuvärillinen tausta</string>
<string name="revanced_gradient_loading_screen_summary_off">Latausruudulla on yksivärinen tausta</string>
<string name="revanced_seekbar_custom_color_title">Ota oma etenemispalkin väri käyttöön</string>
<string name="revanced_seekbar_custom_color_summary_on">Oma etenemispalkin väri näytetään</string>
<string name="splash_screen_animation_style_entry_1">Väri</string>
<string name="revanced_seekbar_custom_color_title">Ota mukautettu etenemispalkin väri käyttöön</string>
<string name="revanced_seekbar_custom_color_summary_on">Mukautettu etenemispalkin väri näytetään</string>
<string name="revanced_seekbar_custom_color_summary_off">Alkuperäinen etenemispalkin väri näytetään</string>
<string name="revanced_seekbar_custom_color_primary_title">Oma etenemispalkin väri</string>
<string name="revanced_seekbar_custom_color_primary_title">Mukautettu etenemispalkin väri</string>
<string name="revanced_seekbar_custom_color_primary_summary">Etenemispalkin väri</string>
<string name="revanced_seekbar_custom_color_accent_title">Oma etenemispalkin korostusväri</string>
<string name="revanced_seekbar_custom_color_accent_title">Mukautettu etenemispalkin korostusväri</string>
<string name="revanced_seekbar_custom_color_accent_summary">Etenemispalkin korostusväri</string>
<string name="revanced_seekbar_custom_color_invalid">Virheellinen etenemispalkin väriarvo</string>
</patch>
@@ -1398,19 +1399,20 @@ Tämä voi avata korkealaatuisemmat videot"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Näytä nopeuden valintapainike</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Painike näytetään</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Painike näytetään. Napauta ja pidä pohjassa palauttaaksesi soiton nopeuden oletukseksi</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Painiketta ei näytetä</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
<string name="revanced_custom_speed_menu_title">Oma toistonopeusvalikko</string>
<string name="revanced_custom_speed_menu_summary_on">Oma nopeusvalikko näytetään</string>
<string name="revanced_custom_speed_menu_summary_off">Omaa nopeusvalikkoa ei näytetä</string>
<string name="revanced_custom_playback_speeds_title">Omat toistonopeudet</string>
<string name="revanced_custom_playback_speeds_summary">Lisää tai muuta omia toistonopeuksia</string>
<string name="revanced_custom_playback_speeds_invalid">Omien nopeuksien tulee olla alle %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Virheelliset omat toistonopeudet</string>
<string name="revanced_custom_speed_menu_title">Mukautettu toistonopeusvalikko</string>
<string name="revanced_custom_speed_menu_summary_on">Mukautettu nopeusvalikko näytetään</string>
<string name="revanced_custom_speed_menu_summary_off">Mukautettua nopeusvalikkoa ei näytetä</string>
<string name="revanced_custom_playback_speeds_title">Mukautetut toistonopeudet</string>
<string name="revanced_custom_playback_speeds_summary">Lisää tai muuta mukautettuja toistonopeuksia</string>
<string name="revanced_custom_playback_speeds_invalid">Mukautettujen nopeuksien tulee olla alle %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Virheelliset mukautetut toistonopeudet</string>
<string name="revanced_custom_playback_speeds_auto">Automaattinen</string>
<string name="revanced_speed_tap_and_hold_title">Oma napauta ja pidä pohjassa -nopeus</string>
<string name="revanced_custom_playback_speeds_reset_toast">Toistonopeus palautettu: %s</string>
<string name="revanced_speed_tap_and_hold_title">Mukautettu napauta ja pidä pohjassa -nopeus</string>
<string name="revanced_speed_tap_and_hold_summary">Toistonopeus 08 välillä</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">

View File

@@ -311,9 +311,9 @@ Hindi ka aabisuhan ng anumang hindi inaasahang mga kaganapan."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Itago ang butong \'Gumawa ng Short\'</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Nakatago ang button na Gumawa ng isang Short</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Ipinapakita ang button na Gumawa ng isang Short</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Itago ang mga button ng emoji at timestamp</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Nakatago ang mga button ng Emoji at timestamp</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Ipinapakita ang mga button ng Emoji at timestamp</string>
<string name="revanced_hide_comments_timestamp_button_title">Itago ang button na timestamp</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Nakatago ang button na timestamp</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Ipinapakita ang button na timestamp</string>
<string name="revanced_hide_comments_preview_comment_title">Itago ang preview na komento</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Nakatago ang preview ng komento</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Ang pag-preview ng komento ay ipinapakita</string>
@@ -748,6 +748,9 @@ Upang ipakita ang menu ng Audio track, baguhin ang 'Spoof video streams' sa iOS
<string name="revanced_hide_shorts_location_label_title">Itago ang label ng lokasyon</string>
<string name="revanced_hide_shorts_location_label_summary_on">Nakatago ang label ng lokasyon</string>
<string name="revanced_hide_shorts_location_label_summary_off">Ipinapakita ang label ng lokasyon</string>
<string name="revanced_hide_shorts_preview_comment_title">Itago ang komento sa preview</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Nakatago ang komento sa preview</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Ipinapakita ang preview na komento</string>
<string name="revanced_hide_shorts_save_sound_button_title">Itago ang Save music button</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Ang buton ng pag-save ng musika ay nakatago</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Ang buton ng pag-save ng musika ay ipinapakita</string>
@@ -1251,6 +1254,9 @@ Mag-swipe para palawakin o isara"</string>
<string name="revanced_gradient_loading_screen_title">Paganahin ang gradient loading screen</string>
<string name="revanced_gradient_loading_screen_summary_on">Ang paglo-load ng screen ay magkakaroon ng gradient na background</string>
<string name="revanced_gradient_loading_screen_summary_off">Ang paglo-load ng screen ay magkakaroon ng solidong background</string>
<string name="splash_screen_animation_style_title">Estilo ng splash screen</string>
<string name="splash_screen_animation_style_entry_1">Kulay</string>
<string name="splash_screen_animation_style_entry_2">Itim at puti</string>
<string name="revanced_seekbar_custom_color_title">Paganahin ang custom na kulay ng seekbar</string>
<string name="revanced_seekbar_custom_color_summary_on">Ipinapakita ang kulay ng custom na seekbar</string>
<string name="revanced_seekbar_custom_color_summary_off">Ipinapakita ang orihinal na kulay ng seekbar</string>
@@ -1396,7 +1402,7 @@ Ang pagpapagana nito ay maaaring magbukas ng mas mataas na kalidad ng video"</st
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Ipakita ang pindutan ng dialog ng bilis</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Ang pindutan ay ipinapakita</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Ipinapakita ang button. I-tap at i-hold para i-reset ang bilis ng pag-playback sa default</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Hindi ipinapakita ang button</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1408,6 +1414,7 @@ Ang pagpapagana nito ay maaaring magbukas ng mas mataas na kalidad ng video"</st
<string name="revanced_custom_playback_speeds_invalid">Ang mga custom na bilis ay dapat na mas mababa sa %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Hindi wastong custom na bilis ng paglalaro</string>
<string name="revanced_custom_playback_speeds_auto">Awtomatik</string>
<string name="revanced_custom_playback_speeds_reset_toast">Na-reset ang bilis ng pag-playback sa: %s</string>
<string name="revanced_speed_tap_and_hold_title">Custom speed para sa pag-tap at pag-hold</string>
<string name="revanced_speed_tap_and_hold_summary">Tugtugin ang bilis ng playback sa pagitan ng 0-8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Vous ne serez pas informé des événements inattendus."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Masquer le bouton Créer un Short</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Le bouton \"Créer un Short\" est masqué</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Le bouton \"Créer un Short\" est affiché</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Masquer les boutons emoji et d\'horodatage</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Les boutons emoji et d\'horodatage sont masqués</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Les boutons emoji et d\'horodatage sont affichés</string>
<string name="revanced_hide_comments_timestamp_button_title">Masquer le bouton dhorodatage</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Le bouton dhorodatage est masqué</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Le bouton dhorodatage est affiché</string>
<string name="revanced_hide_comments_preview_comment_title">Masquer le commentaire servant d\'aperçu</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Le commentaire servant d\'aperçu est masqué</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Le commentaire servant d\'aperçu est affiché</string>
@@ -750,6 +750,9 @@ Pour afficher le menu Piste audio, définissez \"Falsifier les flux vidéo\" sur
<string name="revanced_hide_shorts_location_label_title">Masquer le libellé de lieu</string>
<string name="revanced_hide_shorts_location_label_summary_on">Le libellé de lieu est masqué</string>
<string name="revanced_hide_shorts_location_label_summary_off">Le libellé de lieu est affiché</string>
<string name="revanced_hide_shorts_preview_comment_title">Masquer le commentaire servant d\'aperçu</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Le commentaire servant d\'aperçu est masqué</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Le commentaire servant d\'aperçu est affiché</string>
<string name="revanced_hide_shorts_save_sound_button_title">Masquer le bouton Enregistrer la musique</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Le bouton Enregistrer la musique est masqué</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Le bouton Enregistrer la musique est affiché</string>
@@ -1252,6 +1255,9 @@ Balayez pour agrandir ou fermer"</string>
<string name="revanced_gradient_loading_screen_title">Activer le dégradé sur l\'écran de chargement</string>
<string name="revanced_gradient_loading_screen_summary_on">Le fond de l\'écran de chargement sera un dégradé de couleurs</string>
<string name="revanced_gradient_loading_screen_summary_off">Le fond de l\'écran de chargement sera une couleur unie</string>
<string name="splash_screen_animation_style_title">Style d\'écran de démarrage</string>
<string name="splash_screen_animation_style_entry_1">Couleur </string>
<string name="splash_screen_animation_style_entry_2">Noir et blanc</string>
<string name="revanced_seekbar_custom_color_title">Personnaliser la couleur de la barre de progression</string>
<string name="revanced_seekbar_custom_color_summary_on">La couleur de la barre de progression est personnalisée</string>
<string name="revanced_seekbar_custom_color_summary_off">La couleur originale de la barre de progression est affichée</string>
@@ -1397,7 +1403,7 @@ Activer cette option peut déverrouiller des qualités vidéo supérieures"</str
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Afficher un bouton Vitesse</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Le bouton est affiché</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Le bouton est affiché. Appuyez longuement dessus pour rétablir la vitesse de lecture par défaut.</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Le bouton n\'est pas affiché</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1409,6 +1415,7 @@ Activer cette option peut déverrouiller des qualités vidéo supérieures"</str
<string name="revanced_custom_playback_speeds_invalid">Il doit y avoir moins de %s vitesses personnalisées</string>
<string name="revanced_custom_playback_speeds_parse_exception">Vitesses de lecture personnalisées invalides</string>
<string name="revanced_custom_playback_speeds_auto">Automatique</string>
<string name="revanced_custom_playback_speeds_reset_toast">Vitesse de lecture réinitialisée à : %s</string>
<string name="revanced_speed_tap_and_hold_title">Vitesse personnalisée d\'accélération sur appui long</string>
<string name="revanced_speed_tap_and_hold_summary">Vitesse de lecture comprise entre 0 et 8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Ní chuirfear ar an eolas thú faoi aon imeachtaí gan choinne."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Folaigh an cnaipe \'Cruthaigh Short\'</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Tá cnaipe Cruthaigh gearrscéal i bhfolach</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Taispeántar cnaipe Cruthaigh gearrscéal</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Folaigh cnaipí emoji agus amlínte</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Tá cnaipí emoji agus amlínte i bhfolach</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Taispeántar cnaipí emoji agus amlínte</string>
<string name="revanced_hide_comments_timestamp_button_title">Folaigh cnaipe an stampa ama</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Tá cnaipe an stampa ama i bhfolach</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Taispeántar cnaipe an stampa ama</string>
<string name="revanced_hide_comments_preview_comment_title">Folaigh trácht réamhamharc</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Tá trácht réamhamhar i bhfolach</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Taispeántar trácht réamhamharc</string>
@@ -750,6 +750,9 @@ Chun roghchlár na rian fuaime a thaispeáint, athraigh 'Srutháin físeáin bhr
<string name="revanced_hide_shorts_location_label_title">Folaigh lipéad suímh</string>
<string name="revanced_hide_shorts_location_label_summary_on">Tá lipéad suímh i bhfolach</string>
<string name="revanced_hide_shorts_location_label_summary_off">Taispeántar lipéad suímh</string>
<string name="revanced_hide_shorts_preview_comment_title">Folaigh réamhamharc ar an nóta tráchta</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Tá réamhamharc ar an nóta tráchta i bhfolach</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Taispeántar réamhamharc ar an nóta tráchta</string>
<string name="revanced_hide_shorts_save_sound_button_title">Folaigh cnaipe \'Sábháil ceol\'</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Tá an cnaipe Sábháil ceoil i bhfolach</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Taispeántar an cnaipe Sábháil ceoil</string>
@@ -1253,6 +1256,9 @@ Svaidhpeáil chun leathnú nó dúnadh"</string>
<string name="revanced_gradient_loading_screen_title">Cumasaigh scáileán luchtaithe</string>
<string name="revanced_gradient_loading_screen_summary_on">Beidh cúlra grádáin ag an scáileán lódála</string>
<string name="revanced_gradient_loading_screen_summary_off">Beidh cúlra láidir ag scáileán luchtaithe</string>
<string name="splash_screen_animation_style_title">Stíl scáileáin splancais</string>
<string name="splash_screen_animation_style_entry_1">Dath</string>
<string name="splash_screen_animation_style_entry_2">Dubh agus bán</string>
<string name="revanced_seekbar_custom_color_title">Cumasaigh dath barra cuardaigh saincheaptha</string>
<string name="revanced_seekbar_custom_color_summary_on">Taispeántar dath barra cuardaigh saincheaptha</string>
<string name="revanced_seekbar_custom_color_summary_off">Taispeántar dath barr cuardaigh bunaidh</string>
@@ -1398,7 +1404,7 @@ Is féidir le seo caighdeáin físeáin níos airde a dhíghlasáil"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Taispeáin cnaipe dialóg luais</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Taispeántar an cnaipe</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Taispeántar an cnaipe. Tapáil agus coinnigh chun luas athsheinm a athshocrú go réamhshocrú</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Ní thaispeántar an cnaipe</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1410,6 +1416,7 @@ Is féidir le seo caighdeáin físeáin níos airde a dhíghlasáil"</string>
<string name="revanced_custom_playback_speeds_invalid">Ní mór luas saincheaptha a bheith níos lú ná %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Luasanna athsheinm saincheaptha neamhbhailí</string>
<string name="revanced_custom_playback_speeds_auto">Uathoibríoch</string>
<string name="revanced_custom_playback_speeds_reset_toast">Athshocraíodh luas athsheinm go: %s</string>
<string name="revanced_speed_tap_and_hold_title">Luas tap is agus greim</string>
<string name="revanced_speed_tap_and_hold_summary">Luas athsheinm eatarthu 0-8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Nem fog értesülni semmilyen váratlan eseményről."</string>
<string name="revanced_hide_comments_create_a_short_button_title">A „Rövid létrehozása” gomb elrejtése</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">A Rövidfilm létrehozása gomb rejtett</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">A Rövidfilm létrehozása gomb látható</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Hangulatjel- és időbélyegző gombok elrejtése</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">A hangulatjel- és időbélyegző gombok rejtettek</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">A hangulatjel- és időbélyegző gombok láthatók</string>
<string name="revanced_hide_comments_timestamp_button_title">Az időbélyegző gomb elrejtése</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Az időbélyegző gomb el van rejtve</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Az időbélyegző gomb megjelenik</string>
<string name="revanced_hide_comments_preview_comment_title">Megjegyzés előnézet elrejtése</string>
<string name="revanced_hide_comments_preview_comment_summary_on">A megjegyzés előnézet el van rejtve</string>
<string name="revanced_hide_comments_preview_comment_summary_off">A megjegyzés előnézet megjelenik</string>
@@ -750,6 +750,9 @@ Az audiosáv menü megjelenítéséhez módosítsa a \"Videófolyamok hamisítá
<string name="revanced_hide_shorts_location_label_title">Helycímke elrejtése</string>
<string name="revanced_hide_shorts_location_label_summary_on">A helycízke címke el van rejtve</string>
<string name="revanced_hide_shorts_location_label_summary_off">A helycízke címke meg van jelenítve</string>
<string name="revanced_hide_shorts_preview_comment_title">Elrejtés előnézeti megjegyzés</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Az előnézeti megjegyzés rejtve van</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Megjelenik a megjegyzés előnézete</string>
<string name="revanced_hide_shorts_save_sound_button_title">Zene mentése gomb elrejtése</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">A zene mentés gomb el van rejtve</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">A zene mentés gomb látható</string>
@@ -1250,6 +1253,9 @@ Húzza el a képernyőt a kibontáshoz vagy bezáráshoz"</string>
<string name="revanced_gradient_loading_screen_title">Színátmenetes betöltési képernyő engedélyezése</string>
<string name="revanced_gradient_loading_screen_summary_on">A betöltési képernyő színátmenetes hatterű lesz</string>
<string name="revanced_gradient_loading_screen_summary_off">A betöltési képernyő egyszínű hátterű lesz</string>
<string name="splash_screen_animation_style_title">Üdvözlőképernyő stílusa</string>
<string name="splash_screen_animation_style_entry_1">Színes</string>
<string name="splash_screen_animation_style_entry_2">Fekete-fehér</string>
<string name="revanced_seekbar_custom_color_title">Egyéni keresősáv szín engedélyezése</string>
<string name="revanced_seekbar_custom_color_summary_on">Az egyéni keresősáv szín megjelenik</string>
<string name="revanced_seekbar_custom_color_summary_off">Az egyéni keresősáv szín nem jelenik meg</string>
@@ -1395,7 +1401,7 @@ Ez a beállítás lehetővé teszi a magasabb videóminőségek feloldását"</s
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Sebesség párbeszédpanel megjelenítése</string>
<string name="revanced_playback_speed_dialog_button_summary_on">A gomb megjelenik</string>
<string name="revanced_playback_speed_dialog_button_summary_on">A gomb látható. Tartsa lenyomva a lejátszási sebesség alapértelmezettre állításához</string>
<string name="revanced_playback_speed_dialog_button_summary_off">A gomb nem látható</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1407,6 +1413,7 @@ Ez a beállítás lehetővé teszi a magasabb videóminőségek feloldását"</s
<string name="revanced_custom_playback_speeds_invalid">Az egyéni sebességeknek kevesebbnek kell lenniük, mint %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Érvénytelen egyéni lejátszási sebességek</string>
<string name="revanced_custom_playback_speeds_auto">Automatikus</string>
<string name="revanced_custom_playback_speeds_reset_toast">Lejátszási sebesség visszaállítva: %s</string>
<string name="revanced_speed_tap_and_hold_title">Egyéni koppintás és tartás sebesség</string>
<string name="revanced_speed_tap_and_hold_summary">Lejátszási sebesség 0-8 között</string>
</patch>

View File

@@ -311,9 +311,9 @@ MicroG-ի համար մարտկոցի օպտիմալացումը անջատել
<string name="revanced_hide_comments_create_a_short_button_title">Թաքցնել \"Ստեղծել 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_timestamp_button_title">Թաքցնել ժամանակային նշումով կոճակը</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Ժամանակային նշումով կոճակը թաքցված է</string>
<string name="revanced_hide_comments_timestamp_button_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>
@@ -750,6 +750,9 @@ MicroG-ի համար մարտկոցի օպտիմալացումը անջատել
<string name="revanced_hide_shorts_location_label_title">Թաքցնել տեղանքի նշումը</string>
<string name="revanced_hide_shorts_location_label_summary_on">Տեղանքի նշումը թաքցված է</string>
<string name="revanced_hide_shorts_location_label_summary_off">Տեղանքի նշումը ցուցադրվում է</string>
<string name="revanced_hide_shorts_preview_comment_title">Թաքցնել նախադիտման մեկնաբանությունը</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Նախադիտման մեկնաբանությունը թաքնված է</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Ցուցադրվում է մեկնաբանության նախադիտումը</string>
<string name="revanced_hide_shorts_save_sound_button_title">Թաքցնել երաժշտությունը պահպանել կոճակը</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">«Save music» կոճակը թաքցված է</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">«Save music» կոճակը ցուցադրվում է</string>
@@ -1253,6 +1256,9 @@ Mini-player-ը կարող է գրավվել էկրանից դուրս՝ դեպի
<string name="revanced_gradient_loading_screen_title">Աктиվացնել գրադիենտի բեռնման էկրանը</string>
<string name="revanced_gradient_loading_screen_summary_on">Բեռնման էկրանը կունենա գրադիենտի ֆոն</string>
<string name="revanced_gradient_loading_screen_summary_off">Բեռնման էկրանը կունենա մեկ գույնի ֆոն</string>
<string name="splash_screen_animation_style_title">Մեկնարկային էկրանի ոճը</string>
<string name="splash_screen_animation_style_entry_1">Գույն</string>
<string name="splash_screen_animation_style_entry_2">Սև և սպիտակ</string>
<string name="revanced_seekbar_custom_color_title">Աктиվացնել հարմարեցված seekbar-ի գույնը</string>
<string name="revanced_seekbar_custom_color_summary_on">Հարմարեցված seekbar-ի գույնը ցուցադրվում է</string>
<string name="revanced_seekbar_custom_color_summary_off">Սկզբնական seekbar-ի գույնը ցուցադրվում է</string>
@@ -1398,7 +1404,7 @@ Mini-player-ը կարող է գրավվել էկրանից դուրս՝ դեպի
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Ցուցադրել արագության դիալոգի պատուհանի կոճակը</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Կոճակը ցուցադրվում է</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Կոճակը ցուցադրվում է: Հպեք և պահեք՝ նվագարկման արագությունը լռելյայնի վերականգնելու համար</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Կոճակը չի ցուցադրվում</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1410,6 +1416,7 @@ Mini-player-ը կարող է գրավվել էկրանից դուրս՝ դեպի
<string name="revanced_custom_playback_speeds_invalid">Պատրաստված արագությունները պետք է լինեն ավելի քիչ քան %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Չի աշխատում պատրաստված վերարտադրման արագությունները։</string>
<string name="revanced_custom_playback_speeds_auto">Ավտո</string>
<string name="revanced_custom_playback_speeds_reset_toast">Նվագարկման արագությունը վերականգնվել է. %s</string>
<string name="revanced_speed_tap_and_hold_title">Զգայական վերահսկում՝ անվանափոխման համար</string>
<string name="revanced_speed_tap_and_hold_summary">Վերարտադրման արագությունը 0-8 միջակայքում</string>
</patch>

View File

@@ -41,7 +41,7 @@ Second \"item\" text"</string>
<string name="revanced_settings_restart">Mulai ulang</string>
<string name="revanced_settings_import">Impor</string>
<string name="revanced_settings_import_copy">Salin</string>
<string name="revanced_settings_import_reset">Pengaturan ReVanced diatur ke setelan awal</string>
<string name="revanced_settings_import_reset">Pengaturan ReVanced diatur ke bawaan</string>
<string name="revanced_settings_import_success">Mengimpor setelan %d</string>
<string name="revanced_settings_import_failure_parse">Impor gagal: %s</string>
<string name="revanced_settings_search_hint">Pengaturan pencarian</string>
@@ -55,7 +55,7 @@ Second \"item\" text"</string>
<string name="revanced_language_user_dialog_message">"Terjemahan untuk beberapa bahasa mungkin hilang atau tidak lengkap.
Untuk menerjemahkan bahasa baru kunjungi translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">Bahasa Aplikasi</string>
<string name="revanced_language_DEFAULT">Bahasa aplikasi</string>
<string name="revanced_pref_import_export_title">Impor / Ekspor</string>
<string name="revanced_pref_import_export_summary">Impor / Ekspor setelan ReVanced</string>
<!-- Settings about dialog. -->
@@ -311,9 +311,9 @@ Anda tidak akan diberi tahu tentang kejadian yang tidak terduga."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Sembunyikan tombol \'Buat Short\'</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Tombol Buat Short disembunyikan</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Tombol Buat Short ditampilkan</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Sembunyikan tombol emoji dan stempel waktu</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Tombol emoji dan stempel waktu disembunyikan</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Tombol emoji dan stempel waktu ditampilkan</string>
<string name="revanced_hide_comments_timestamp_button_title">Sembunyikan tombol stempel waktu</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Tombol stempel waktu disembunyikan</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Tombol stempel waktu ditampilkan</string>
<string name="revanced_hide_comments_preview_comment_title">Sembunyikan pratinjau komentar</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Pratinjau komentar disembunyikan</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Pratinjau komentar ditampilkan</string>
@@ -750,6 +750,9 @@ Untuk menampilkan menu trek Audio, ubah 'Spoof aliran video' ke iOS TV"</string>
<string name="revanced_hide_shorts_location_label_title">Sembunyikan label lokasi</string>
<string name="revanced_hide_shorts_location_label_summary_on">Label lokasi disembunyikan</string>
<string name="revanced_hide_shorts_location_label_summary_off">Label lokasi ditampilkan</string>
<string name="revanced_hide_shorts_preview_comment_title">Sembunyikan pratinjau komentar</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Pratinjau komentar disembunyikan</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Pratinjau komentar ditampilkan</string>
<string name="revanced_hide_shorts_save_sound_button_title">Sembunyikan Simpan musik</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Tombol simpan musik disembunyikan</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Tombol simpan musik ditampilkan</string>
@@ -1252,6 +1255,9 @@ Geser untuk memperluas atau menutup"</string>
<string name="revanced_gradient_loading_screen_title">Aktifkan layar pemuatan gradien</string>
<string name="revanced_gradient_loading_screen_summary_on">Layar pemuatan akan memiliki latar belakang gradien</string>
<string name="revanced_gradient_loading_screen_summary_off">Layar pemuatan akan memiliki latar belakang yang solid</string>
<string name="splash_screen_animation_style_title">Gaya layar splash</string>
<string name="splash_screen_animation_style_entry_1">Warna</string>
<string name="splash_screen_animation_style_entry_2">Hitam dan putih</string>
<string name="revanced_seekbar_custom_color_title">Aktifkan warna seekbar khusus</string>
<string name="revanced_seekbar_custom_color_summary_on">Warna seekbar khusus ditampilkan</string>
<string name="revanced_seekbar_custom_color_summary_off">Warna seekbar asli ditampilkan</string>
@@ -1397,7 +1403,7 @@ Mengaktifkan ini dapat membuka kualitas video yang lebih tinggi"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Tampilkan tombol dialog kecepatan</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Tombol ditampilkan</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Tombol ditampilkan. Ketuk dan tahan untuk mengatur ulang kecepatan pemutaran ke bawaan</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Tombol tidak ditampilkan</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1409,6 +1415,7 @@ Mengaktifkan ini dapat membuka kualitas video yang lebih tinggi"</string>
<string name="revanced_custom_playback_speeds_invalid">Kecepatan khusus harus kurang dari %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Kecepatan pemutaran khusus tidak valid</string>
<string name="revanced_custom_playback_speeds_auto">Otomatis</string>
<string name="revanced_custom_playback_speeds_reset_toast">Kecepatan pemutaran diatur ulang ke: %s</string>
<string name="revanced_speed_tap_and_hold_title">Kecepatan ketuk dan tahan khusus</string>
<string name="revanced_speed_tap_and_hold_summary">Kecepatan pemutaran antara 0-8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Non sarai notificato di eventi imprevisti."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Nascondi il pulsante \'Crea uno Short\'</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Il pulsante Crea uno Short è nascosto</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Il pulsante Crea uno Short è visibile</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Nascondi i pulsanti emoji e timestamp</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">I pulsanti emoji e timestamp sono nascosti</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">I pulsanti emoji e timestamp sono visibili</string>
<string name="revanced_hide_comments_timestamp_button_title">Nascondi pulsante timestamp</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Il pulsante timestamp è nascosto</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Il pulsante timestamp è visibile</string>
<string name="revanced_hide_comments_preview_comment_title">Nascondi il commento di anteprima</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Il commento di anteprima è nascosto</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Il commento di anteprima è visibile</string>
@@ -750,6 +750,9 @@ Per mostrare il menu della traccia audio, cambia \"Spoof video streams\" in iOS
<string name="revanced_hide_shorts_location_label_title">Nascondi etichetta di posizione</string>
<string name="revanced_hide_shorts_location_label_summary_on">L\'etichetta di posizione è nascosta</string>
<string name="revanced_hide_shorts_location_label_summary_off">L\'etichetta di posizione è visibile</string>
<string name="revanced_hide_shorts_preview_comment_title">Nascondi commento di anteprima</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Il commento di anteprima è nascosto</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Viene mostrata l\'anteprima del commento</string>
<string name="revanced_hide_shorts_save_sound_button_title">Nascondi il pulsante Salva Musica</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Il pulsante Salva traccia è nascosto</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Il pulsante Salva traccia è visibile</string>
@@ -1252,6 +1255,9 @@ Scorri per espandere o chiudere"</string>
<string name="revanced_gradient_loading_screen_title">Abilita la schermata di caricamento col gradiente</string>
<string name="revanced_gradient_loading_screen_summary_on">La schermata di caricamento avrà uno sfondo col gradiente</string>
<string name="revanced_gradient_loading_screen_summary_off">La schermata di caricamento avrà uno sfondo a tinta unita</string>
<string name="splash_screen_animation_style_title">Stile schermata iniziale</string>
<string name="splash_screen_animation_style_entry_1">Colore</string>
<string name="splash_screen_animation_style_entry_2">Bianco e nero</string>
<string name="revanced_seekbar_custom_color_title">Abilita colore personalizzato della barra di avanzamento</string>
<string name="revanced_seekbar_custom_color_summary_on">Il colore personalizzato della barra di avanzamento è visibile</string>
<string name="revanced_seekbar_custom_color_summary_off">Il colore originale della barra di avanzamento è visibile</string>
@@ -1397,7 +1403,7 @@ Abilitare questa opzione può sbloccare qualità video più elevate"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Mostra il pulsante Velocità Video</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Il pulsante è visibile</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Il pulsante è visualizzato. Tieni premuto per ripristinare la velocità di riproduzione predefinita</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Il pulsante non è visibile</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1409,6 +1415,7 @@ Abilitare questa opzione può sbloccare qualità video più elevate"</string>
<string name="revanced_custom_playback_speeds_invalid">Le velocità personalizzate devono essere inferiori a %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Velocità di riproduzione personalizzata non valida</string>
<string name="revanced_custom_playback_speeds_auto">Automatico</string>
<string name="revanced_custom_playback_speeds_reset_toast">Velocità di riproduzione reimpostata su: %s</string>
<string name="revanced_speed_tap_and_hold_title">Velocità personalizzata di tocca e tieni premuto</string>
<string name="revanced_speed_tap_and_hold_summary">Velocità di riproduzione tra 0-8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_comments_create_a_short_button_title">הסתר לחצן \'יצירת Short\'</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">לחצן יצירת Short מוסתר</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">לחצן יצירת Short מוצג</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">הסתר לחצני אמוג\'י וחותמת זמן</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_timestamp_button_title">הסתר לחצן חותם זמן</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">לחצן חותם זמן מוסתר</string>
<string name="revanced_hide_comments_timestamp_button_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>
@@ -750,6 +750,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_location_label_title">הסתר תווית מיקום</string>
<string name="revanced_hide_shorts_location_label_summary_on">תווית מיקום מוסתרת</string>
<string name="revanced_hide_shorts_location_label_summary_off">תווית מיקום מוצגת</string>
<string name="revanced_hide_shorts_preview_comment_title">הסתר תצוגה מקדימה של תגובה</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">תצוגה מקדימה של תגובה מוסתרת</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">תצוגה מקדימה של תגובה מוצגת</string>
<string name="revanced_hide_shorts_save_sound_button_title">הסתר לחצן שמור מוזיקה</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">לחצן שמור מוזיקה מוסתר</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">לחצן שמור מוזיקה מוצג</string>
@@ -1253,6 +1256,9 @@ Second \"item\" text"</string>
<string name="revanced_gradient_loading_screen_title">הפעל מסך טעינה עם מעבר צבע</string>
<string name="revanced_gradient_loading_screen_summary_on">מסך הטעינה יהיה בעל רקע עם מעבר צבע</string>
<string name="revanced_gradient_loading_screen_summary_off">מסך הטעינה יהיה בעל רקע מוצק</string>
<string name="splash_screen_animation_style_title">סגנון מסך פתיחה</string>
<string name="splash_screen_animation_style_entry_1">צבע</string>
<string name="splash_screen_animation_style_entry_2">שחור ולבן</string>
<string name="revanced_seekbar_custom_color_title">הפעל צבע סרגל דילוג מותאם אישית</string>
<string name="revanced_seekbar_custom_color_summary_on">צבע סרגל דילוג מותאם אישית מוצג</string>
<string name="revanced_seekbar_custom_color_summary_off">צבע סרגל דילוג מקורי מוצג</string>
@@ -1398,7 +1404,7 @@ Second \"item\" text"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">הצג לחצן דו-שיח של מהירות</string>
<string name="revanced_playback_speed_dialog_button_summary_on">הלחצן מוצג</string>
<string name="revanced_playback_speed_dialog_button_summary_on">הלחצן מוצג. יש להקיש ולהחזיק כדי לאפס את מהירות ההפעלה לברירת מחדל</string>
<string name="revanced_playback_speed_dialog_button_summary_off">הלחצן אינו מוצג</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1410,6 +1416,7 @@ Second \"item\" text"</string>
<string name="revanced_custom_playback_speeds_invalid">מהירויות מותאמות אישית חייבות להיות קטנות מ-%s</string>
<string name="revanced_custom_playback_speeds_parse_exception">מהירויות הפעלה מותאמות אישית לא חוקיות</string>
<string name="revanced_custom_playback_speeds_auto">אוטומטי</string>
<string name="revanced_custom_playback_speeds_reset_toast">מהירות ההפעלה אופסה ל: %s</string>
<string name="revanced_speed_tap_and_hold_title">מהירות הקשה והחזקה מותאמת אישית</string>
<string name="revanced_speed_tap_and_hold_summary">מהירות הפעלה בין 0 ל-8</string>
</patch>

View File

@@ -140,7 +140,7 @@ MicroG GmsCore に対する電池の最適化を無効にしても、バッテ
<string name="revanced_debug_logs_failed_to_export">ログのエクスポートに失敗: $s</string>
<string name="revanced_debug_logs_clear_buffer_title">デバッグログを消去する</string>
<string name="revanced_debug_logs_clear_buffer_summary">保存されている ReVanced のデバッグログをすべて消去します</string>
<string name="revanced_debug_logs_clear_toast">ログ消去されました</string>
<string name="revanced_debug_logs_clear_toast">ログ消去ました</string>
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<string name="revanced_hide_album_cards_title">アルバム情報を非表示</string>
@@ -314,9 +314,9 @@ MicroG GmsCore に対する電池の最適化を無効にしても、バッテ
<string name="revanced_hide_comments_create_a_short_button_title">「ショートを作成」ボタンを非表示</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">「ショートを作成」ボタンは表示されません</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">「ショートを作成」ボタンは表示されます</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">絵文字ボタンとタイムスタンプ ボタンを非表示</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_timestamp_button_title">タイムスタンプ ボタンを非表示</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">タイムスタンプ ボタンは表示されません</string>
<string name="revanced_hide_comments_timestamp_button_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>
@@ -428,10 +428,10 @@ MicroG GmsCore に対する電池の最適化を無効にしても、バッテ
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
<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_title">「動画の URL をコピー」ボタンを表示する</string>
<string name="revanced_copy_video_url_summary_on">ボタンはオーバーレイに表示されます。タップすると動画の URL を、長押しするとタイムスタンプ付きの URL をそれぞれコピーできます</string>
<string name="revanced_copy_video_url_summary_off">ボタンはオーバーレイに表示されません</string>
<string name="revanced_copy_video_url_timestamp_title">「動画のタイムスタンプ付き URL をコピー」ボタンを表示</string>
<string name="revanced_copy_video_url_timestamp_title">「動画のタイムスタンプ付き URL をコピー」ボタンを表示する</string>
<string name="revanced_copy_video_url_timestamp_summary_on">ボタンはオーバーレイに表示されます。タップするとタイムスタンプ付きの URL を、長押しするとタイムスタンプなしの URL をそれぞれコピーできます</string>
<string name="revanced_copy_video_url_timestamp_summary_off">ボタンはオーバーレイに表示されません</string>
</patch>
@@ -753,6 +753,9 @@ MicroG GmsCore に対する電池の最適化を無効にしても、バッテ
<string name="revanced_hide_shorts_location_label_title">位置情報ラベルを非表示</string>
<string name="revanced_hide_shorts_location_label_summary_on">位置情報ラベルは表示されません</string>
<string name="revanced_hide_shorts_location_label_summary_off">位置情報ラベルは表示されます</string>
<string name="revanced_hide_shorts_preview_comment_title">コメントのプレビューを非表示</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">コメントのプレビューは表示されません</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">コメントのプレビューは表示されます</string>
<string name="revanced_hide_shorts_save_sound_button_title">「音楽を保存」ボタンを非表示</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">「音楽を保存」ボタンは表示されません</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">「音楽を保存」ボタンは表示されます</string>
@@ -1253,6 +1256,9 @@ Automotive レイアウト
<string name="revanced_gradient_loading_screen_title">グラデーションの読み込み画面を使用する</string>
<string name="revanced_gradient_loading_screen_summary_on">画面読み込み時にグラデーションの背景が表示されます</string>
<string name="revanced_gradient_loading_screen_summary_off">画面読み込み時に通常の背景が表示されます</string>
<string name="splash_screen_animation_style_title">スプラッシュ スクリーンのスタイル</string>
<string name="splash_screen_animation_style_entry_1">カラー</string>
<string name="splash_screen_animation_style_entry_2">白黒</string>
<string name="revanced_seekbar_custom_color_title">編集したシークバーの色を使用する</string>
<string name="revanced_seekbar_custom_color_summary_on">編集したシークバーの色が表示されます</string>
<string name="revanced_seekbar_custom_color_summary_off">デフォルトのシークバーの色が表示されます</string>
@@ -1371,9 +1377,9 @@ Automotive レイアウト
<string name="revanced_remove_tracking_query_parameter_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_off">デフォルトの吹き替えは有効です</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>
<!-- '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>
@@ -1396,9 +1402,9 @@ Automotive レイアウト
<string name="revanced_remember_video_quality_toast_shorts">ショートの画質 (%1$s): %2$s</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">再生速度設定ボタンを表示</string>
<string name="revanced_playback_speed_dialog_button_summary_on">再生速度設定ボタンはオーバーレイに表示されます</string>
<string name="revanced_playback_speed_dialog_button_summary_off">再生速度設定ボタンはオーバーレイに表示されません</string>
<string name="revanced_playback_speed_dialog_button_title">再生速度設定ボタンを表示する</string>
<string name="revanced_playback_speed_dialog_button_summary_on">ボタンはオーバーレイに表示されます。長押しすると、再生速度がデフォルトの値にリセットされます</string>
<string name="revanced_playback_speed_dialog_button_summary_off">ボタンはオーバーレイに表示されません</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
<string name="revanced_custom_speed_menu_title">カスタムした再生速度リストを使用する</string>
@@ -1409,8 +1415,9 @@ Automotive レイアウト
<string name="revanced_custom_playback_speeds_invalid">再生速度は %s 未満である必要があります</string>
<string name="revanced_custom_playback_speeds_parse_exception">カスタム再生速度リストが無効です</string>
<string name="revanced_custom_playback_speeds_auto">自動</string>
<string name="revanced_custom_playback_speeds_reset_toast">再生速度をリセットしました: %s</string>
<string name="revanced_speed_tap_and_hold_title">長押し倍速再生の速度</string>
<string name="revanced_speed_tap_and_hold_summary">長押し倍速再生速度のは 0-8 の範囲で、0 および 8 は含まれません</string>
<string name="revanced_speed_tap_and_hold_summary">再生速度の範囲は 0-8 で、0 および 8 は含まれません</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">再生速度の変更を保存する</string>
@@ -1436,7 +1443,7 @@ Automotive レイアウト
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_screen_title">動画ストリームを偽装する</string>
<string name="revanced_spoof_video_streams_screen_summary">動画再生失敗しないために、クライアントの動画ストリームを偽装します</string>
<string name="revanced_spoof_video_streams_screen_summary">動画再生失敗を回避するために、クライアントの動画ストリームを偽装します</string>
<string name="revanced_spoof_video_streams_title">動画ストリームを偽装する</string>
<string name="revanced_spoof_video_streams_summary_on">動画ストリームは偽装されます</string>
<string name="revanced_spoof_video_streams_summary_off">"動画ストリームは偽装されません
@@ -1457,7 +1464,7 @@ AVC は、最大解像度が 1080p であり、Opus オーディオ コーデッ
<string name="revanced_spoof_video_streams_about_android_title">Android クライアントの副作用</string>
<string name="revanced_spoof_video_streams_about_android_summary">"• 「音声トラック」がフライアウト メニューに表示されない
• 「一定音量」が利用できない
• 「デフォルトの吹き替えを無効にする」が利用できない"</string>
• 「デフォルトの吹き替え再生を無効にする」が利用できない"</string>
<string name="revanced_spoof_video_streams_about_no_av1">• AV1 コーデックが利用できない</string>
<string name="revanced_spoof_video_streams_about_kids_videos">• ログアウト時またはシークレット モード時に、子ども向け動画が再生されない可能性がある</string>
<string name="revanced_spoof_streaming_data_stats_for_nerds_title">統計情報に表示する</string>

View File

@@ -315,9 +315,9 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<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_timestamp_and_emoji_buttons_title">타임스탬프 &amp; 이모지 버튼 숨기기</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">타임스탬프 &amp; 이모지 버튼이 숨겨집니다</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">타임스탬프 &amp; 이모지 버튼이 표시됩니다</string>
<string name="revanced_hide_comments_timestamp_button_title">타임스탬프 버튼 숨기기</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">타임스탬프 버튼이 숨겨집니다</string>
<string name="revanced_hide_comments_timestamp_button_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>
@@ -488,14 +488,14 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<string name="revanced_swipe_overlay_timeout_title">스와이프 오버레이 타임아웃</string>
<string name="revanced_swipe_overlay_timeout_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_summary">배경 불투명도 값을 0-100 사이에서 지정할 수 있습니다</string>
<string name="revanced_swipe_overlay_background_opacity_invalid_toast">스와이프 배경 불투명도 값은 0-100 사이여야 합니다</string>
<string name="revanced_swipe_overlay_progress_brightness_color_title">스와이프 오버레이 밝기 조절바 색상</string>
<string name="revanced_swipe_overlay_progress_brightness_color_summary">밝기 조절바 색상을 지정할 수 있습니다</string>
<string name="revanced_swipe_overlay_progress_volume_color_title">스와이프 오버레이 볼륨 조절바 색상</string>
<string name="revanced_swipe_overlay_progress_volume_color_summary">볼륨 조절바 색상을 지정할 수 있습니다</string>
<string name="revanced_swipe_text_overlay_size_title">스와이프 오버레이 텍스트 크기</string>
<string name="revanced_swipe_text_overlay_size_summary">텍스트 크기를 지정할 수 있습니다 (1-30)</string>
<string name="revanced_swipe_text_overlay_size_summary">텍스트 크기를 1-30 사이에서 지정할 수 있습니다</string>
<string name="revanced_swipe_text_overlay_size_invalid_toast">텍스트 크기는 1-30 사이여야 합니다</string>
<string name="revanced_swipe_threshold_title">스와이프 한계치</string>
<string name="revanced_swipe_threshold_summary">제스처 인식을 위해 얼마나 스와이프를 해야 할지를 지정할 수 있으며, 원하지 않은 제스처 인식을 방지할 수 있습니다</string>
@@ -750,6 +750,9 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<string name="revanced_hide_shorts_location_label_title">위치 라벨 숨기기</string>
<string name="revanced_hide_shorts_location_label_summary_on">위치 라벨이 숨겨집니다</string>
<string name="revanced_hide_shorts_location_label_summary_off">위치 라벨이 표시됩니다</string>
<string name="revanced_hide_shorts_preview_comment_title">댓글 미리보기 숨기기</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">댓글 미리보기가 숨겨집니다</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">댓글 미리보기가 표시됩니다</string>
<string name="revanced_hide_shorts_save_sound_button_title">(재생목록에) 음악 저장 버튼 숨기기</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">(재생목록에) 음악 저장 버튼이 숨겨집니다</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">(재생목록에) 음악 저장 버튼이 표시됩니다</string>
@@ -850,7 +853,7 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">플레이어 오버레이 불투명도</string>
<string name="revanced_player_overlay_opacity_summary">불투명도 값 0-100 사이이며, 0은 투명입니다</string>
<string name="revanced_player_overlay_opacity_summary">불투명도 값 0-100 사이에서 지정할 수 있습니다 (투명: 0)</string>
<string name="revanced_player_overlay_opacity_invalid_toast">플레이어 오버레이 불투명도는 0-100 사이여야 합니다</string>
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
@@ -1249,13 +1252,16 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<string name="revanced_miniplayer_width_dip_summary">화면 크기 초기값을 지정할 수 있습니다 (픽셀)</string>
<string name="revanced_miniplayer_width_dip_invalid_toast">픽셀 크기는 %1$s-%2$s 사이여야 합니다</string>
<string name="revanced_miniplayer_opacity_title">미니 플레이어 오버레이 불투명도</string>
<string name="revanced_miniplayer_opacity_summary">불투명도 값 0-100 사이이며, 0은 투명입니다</string>
<string name="revanced_miniplayer_opacity_summary">불투명도 값 0-100 사이에서 지정할 수 있습니다 (투명: 0)</string>
<string name="revanced_miniplayer_opacity_invalid_toast">미니 플레이어 오버레이 불투명도는 0-100 사이여야 합니다</string>
</patch>
<patch id="layout.theme.themePatch">
<string name="revanced_gradient_loading_screen_title">그라데이션 색상 로딩 화면 활성화하기</string>
<string name="revanced_gradient_loading_screen_summary_on">그라데이션 색상 로딩 화면을 활성화합니다</string>
<string name="revanced_gradient_loading_screen_summary_off">기본 로딩 화면을 활성화합니다</string>
<string name="splash_screen_animation_style_title">스플래시 애니메이션 스타일</string>
<string name="splash_screen_animation_style_entry_1">컬러</string>
<string name="splash_screen_animation_style_entry_2">흑백</string>
<string name="revanced_seekbar_custom_color_title">사용자 정의 재생바 색상 활성화하기</string>
<string name="revanced_seekbar_custom_color_summary_on">사용자 정의 재생바 색상을 활성화합니다</string>
<string name="revanced_seekbar_custom_color_summary_off">기본 재생바 색상을 활성화합니다</string>
@@ -1401,7 +1407,7 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">동영상 재생 속도 다이얼로그 버튼 표시하기</string>
<string name="revanced_playback_speed_dialog_button_summary_on">버튼을 표시합니다</string>
<string name="revanced_playback_speed_dialog_button_summary_on">버튼을 표시합니다\n\n• 버튼을 길게 누르면 동영상 재생 속도가 기본값으로 초기화됩니다</string>
<string name="revanced_playback_speed_dialog_button_summary_off">버튼을 표시하지 않습니다</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1413,6 +1419,7 @@ DeArrow에 대해 자세히 알아보려면 여기를 누르세요"</string>
<string name="revanced_custom_playback_speeds_invalid">재생 속도 값은 %s배속보다 작아야 합니다</string>
<string name="revanced_custom_playback_speeds_parse_exception">잘못된 사용자 정의 재생 속도 값입니다</string>
<string name="revanced_custom_playback_speeds_auto">자동</string>
<string name="revanced_custom_playback_speeds_reset_toast">동영상 재생 속도를 %s 으로 초기화하였습니다</string>
<string name="revanced_speed_tap_and_hold_title">사용자 정의 길게 눌러서 동영상 재생 속도</string>
<string name="revanced_speed_tap_and_hold_summary">화면을 길게 누르는 동안에 변경되는 동영상 재생 속도를 0-8 사이에서 지정할 수 있습니다</string>
</patch>

View File

@@ -311,9 +311,9 @@ Apie netikėtus įvykius nebus pranešta."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Slėpti \"Kurti Short\" mygtuką</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Mygtukas „Sukurti Short“ paslėptas</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Mygtukas „Sukurti Short“ rodomas</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Slėpti jaustukų ir laiko žymų mygtukus</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Jaustukų ir laiko žymų mygtukai paslėpti</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Jaustukų ir laiko žymų mygtukai rodomi</string>
<string name="revanced_hide_comments_timestamp_button_title">Slėpti datos ir laiko žymos mygtuką</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Datos ir laiko žymos mygtukas paslėptas</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Datos ir laiko žymos mygtukas rodomas</string>
<string name="revanced_hide_comments_preview_comment_title">Slėpti peržiūros komentarą</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Peržiūros komentaras yra paslėptas</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Peržiūros komentaras yra rodomas</string>
@@ -748,6 +748,9 @@ Jei pakeitus šį nustatymą neįsigalioja, pabandykite perjungti į inkognito r
<string name="revanced_hide_shorts_location_label_title">Slėpti vietovės etiketę</string>
<string name="revanced_hide_shorts_location_label_summary_on">Vietovės etiketė paslėpta</string>
<string name="revanced_hide_shorts_location_label_summary_off">Vietovės etiketė rodoma</string>
<string name="revanced_hide_shorts_preview_comment_title">Slėpti peržiūros komentarą</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Komentaro peržiūra paslėpta</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Parodyta komentaro peržiūra</string>
<string name="revanced_hide_shorts_save_sound_button_title">Paslėpti mygtuką „Įrašyti muziką\"</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">\"Išsaugoti muziką\" mygtukas paslėptas</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">\"Išsaugoti muziką\" mygtukas rodomas</string>
@@ -1252,6 +1255,9 @@ Braukite, kad išplėstumėte arba uždarytumėte"</string>
<string name="revanced_gradient_loading_screen_title">Įgalinti gradientinį įkėlimo ekraną</string>
<string name="revanced_gradient_loading_screen_summary_on">Įkėlimo ekranas turės gradientinį foną</string>
<string name="revanced_gradient_loading_screen_summary_off">Įkėlimo ekranas turės tvirtą foną</string>
<string name="splash_screen_animation_style_title">Paleidimo ekrano stilius</string>
<string name="splash_screen_animation_style_entry_1">Spalva</string>
<string name="splash_screen_animation_style_entry_2">Juoda ir balta</string>
<string name="revanced_seekbar_custom_color_title">Įgalinti pritaikytą slankiklio spalvą</string>
<string name="revanced_seekbar_custom_color_summary_on">Rodoma pritaikyta slankiklio spalva</string>
<string name="revanced_seekbar_custom_color_summary_off">Rodoma originali slankiklio spalva</string>
@@ -1397,7 +1403,7 @@ Gali būti atrakinta aukštesnės vaizdo įrašų kokybės, bet galite patirti v
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Rodyti greičio dialogo mygtuką</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Mygtukas rodomas</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Mygtukas rodomas. Palieskite ir palaikykite, kad atkūrimo greitį nustatytumėte į numatytąjį.</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Mygtukas nerodomas</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1409,6 +1415,7 @@ Gali būti atrakinta aukštesnės vaizdo įrašų kokybės, bet galite patirti v
<string name="revanced_custom_playback_speeds_invalid">Pasirinktinis greitis turi būti mažesnis nei %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Netinkamas pasirinktinis atkūrimo greitis</string>
<string name="revanced_custom_playback_speeds_auto">Automatinis</string>
<string name="revanced_custom_playback_speeds_reset_toast">Atkūrimo greitis nustatytas iš naujo: %s</string>
<string name="revanced_speed_tap_and_hold_title">Pritaikytas bakstelėjimo ir laikymo greitis</string>
<string name="revanced_speed_tap_and_hold_summary">Atkūrimo greitis: nuo 0 iki 8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Jūs netiksit informēts par neparedzētiem notikumiem."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Paslēpt \"Izveidot īso\" pogu</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Poga Izveidot Short ir paslēpta</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Poga Izveidot Short ir redzama</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Paslēpt emocijzīmju un laikazīmogu pogas</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Emocijzīmju un laikazīmogu pogas ir paslēptas</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Emocijzīmju un laikazīmogu pogas ir redzamas</string>
<string name="revanced_hide_comments_timestamp_button_title">Paslēpt laika zīmoga pogu</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Laika zīmoga poga ir paslēpta</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Laika zīmoga poga ir redzama</string>
<string name="revanced_hide_comments_preview_comment_title">Paslēpt priekšskatījuma komentāru</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Priekšskatījuma komentārs ir paslēpts</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Priekšskatījuma komentārs ir redzams</string>
@@ -750,6 +750,9 @@ Lai parādītu audio celiņu izvēlni, mainiet \"Video straumju viltošana\" uz
<string name="revanced_hide_shorts_location_label_title">Paslēpt atrašanās vietas nosaukumu</string>
<string name="revanced_hide_shorts_location_label_summary_on">Atrašanās vietas nosaukums ir paslēpts</string>
<string name="revanced_hide_shorts_location_label_summary_off">Atrašanās vietas nosaukums ir redzams</string>
<string name="revanced_hide_shorts_preview_comment_title">Paslēpt priekšskatījuma komentāru</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Komentāra priekšskatījums ir paslēpts</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Priekšskatījuma komentārs tiek rādīts</string>
<string name="revanced_hide_shorts_save_sound_button_title">Paslēpt pogu \"Saglabāt mūziku\"</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">“Saglabāt mūziku” poga ir paslēpta</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">“Saglabāt mūziku” poga ir redzama</string>
@@ -1252,6 +1255,9 @@ Velciet, lai izvērstu vai aizvērtu"</string>
<string name="revanced_gradient_loading_screen_title">Iespējot gradientu ielādes ekrānu</string>
<string name="revanced_gradient_loading_screen_summary_on">Ielādes ekrānam būs gradientu fons</string>
<string name="revanced_gradient_loading_screen_summary_off">Ielādes ekrānam būs ciets fons</string>
<string name="splash_screen_animation_style_title">Sākuma ekrāna stils</string>
<string name="splash_screen_animation_style_entry_1">Krāsa</string>
<string name="splash_screen_animation_style_entry_2">Melnbalts</string>
<string name="revanced_seekbar_custom_color_title">Iespējot pielāgotu meklēšanas joslas krāsu</string>
<string name="revanced_seekbar_custom_color_summary_on">Pielāgota meklēšanas joslas krāsa ir redzama</string>
<string name="revanced_seekbar_custom_color_summary_off">Oriģinālā meklēšanas joslas krāsa ir redzama</string>
@@ -1397,7 +1403,7 @@ Var tikt atbloķētas augstākas video kvalitātes, taču var rasties video atsk
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Rādīt ātruma dialoga pogu</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Poga tiek rādīta</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Poga ir redzama. Pieskarieties un turiet, lai atiestatītu atskaņošanas ātrumu uz noklusējuma</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Poga netiek rādīta</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1409,6 +1415,7 @@ Var tikt atbloķētas augstākas video kvalitātes, taču var rasties video atsk
<string name="revanced_custom_playback_speeds_invalid">Pielāgoti ātrumi ir jābūt mazākiem par %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Nederīgi pielāgoti video atskaņošanas ātrumi</string>
<string name="revanced_custom_playback_speeds_auto">Automātiski</string>
<string name="revanced_custom_playback_speeds_reset_toast">Atskaņošanas ātrums atiestatīts uz: %s</string>
<string name="revanced_speed_tap_and_hold_title">Pielāgots pieskaršanās un turēšanas ātrums</string>
<string name="revanced_speed_tap_and_hold_summary">Atskaņošanas ātrums no 0 līdz 8</string>
</patch>

View File

@@ -190,6 +190,7 @@ Second \"item\" text"</string>
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
</patch>
<patch id="misc.announcements.announcementsPatch">
<string name="revanced_announcements_dialog_dismiss">Melepaskan</string>
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
</patch>

View File

@@ -311,9 +311,9 @@ U wordt niet op de hoogte gesteld van onverwachte gebeurtenissen."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Verberg \'Create a Short\' knop</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Knop \'Een Short maken\' is verborgen</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Knop \'Een Short maken\' wordt weergegeven</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Emoji- en tijdstempelknoppen verbergen</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Emoji- en tijdstempelknoppen zijn verborgen</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Emoji- en tijdstempelknoppen worden weergegeven</string>
<string name="revanced_hide_comments_timestamp_button_title">Knop voor tijdstempel verbergen</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Knop voor tijdstempel is verborgen</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Knop voor tijdstempel wordt weergegeven</string>
<string name="revanced_hide_comments_preview_comment_title">Reactie in preview verbergen</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Preview reactie is verborgen</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Preview reactie wordt getoond</string>
@@ -750,6 +750,9 @@ Om het audiotrackmenu weer te geven, wijzigt u 'Videostreams vervalsen' in iOS T
<string name="revanced_hide_shorts_location_label_title">Verberg locatie-etiket</string>
<string name="revanced_hide_shorts_location_label_summary_on">Locatie-etiket is verborgen</string>
<string name="revanced_hide_shorts_location_label_summary_off">Locatie-etiket wordt weergegeven</string>
<string name="revanced_hide_shorts_preview_comment_title">Voorbeeldcommentaar verbergen</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Voorbeeldcommentaar is verborgen</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Voorbeeldcommentaar wordt weergegeven</string>
<string name="revanced_hide_shorts_save_sound_button_title">Verberg de knop \"Muziek opslaan\"</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Muziek opslaan-knop is verborgen</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Muziek opslaan-knop wordt weergegeven</string>
@@ -1251,6 +1254,9 @@ Swipe om uit te vouwen of te sluiten"</string>
<string name="revanced_gradient_loading_screen_title">Schakel het laden van het verloopscherm in</string>
<string name="revanced_gradient_loading_screen_summary_on">Het laadscherm heeft een verlopende achtergrond</string>
<string name="revanced_gradient_loading_screen_summary_off">Het laadscherm heeft een effen achtergrond</string>
<string name="splash_screen_animation_style_title">Stijl van opstartscherm</string>
<string name="splash_screen_animation_style_entry_1">Kleur</string>
<string name="splash_screen_animation_style_entry_2">Zwart-wit</string>
<string name="revanced_seekbar_custom_color_title">Schakel aangepaste schuifregelaar kleur in</string>
<string name="revanced_seekbar_custom_color_summary_on">De aangepaste kleur van de schuifregelaar is zichtbaar</string>
<string name="revanced_seekbar_custom_color_summary_off">De oorspronkelijke kleur van de schuifregelaar is zichtbaar</string>
@@ -1396,7 +1402,7 @@ Het inschakelen hiervan kan hogere videokwaliteiten ontgrendelen"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Snelheidsdialoogknop weergeven</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Knop wordt weergegeven</string>
<string name="revanced_playback_speed_dialog_button_summary_on">De knop wordt weergegeven. Tik en houd vast om de afspeelsnelheid terug te zetten naar de standaardwaarde</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Knop wordt niet weergegeven</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1408,6 +1414,7 @@ Het inschakelen hiervan kan hogere videokwaliteiten ontgrendelen"</string>
<string name="revanced_custom_playback_speeds_invalid">Aangepaste snelheden moeten lager zijn dan %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Ongeldige aangepaste afspeelsnelheden</string>
<string name="revanced_custom_playback_speeds_auto">Automatisch</string>
<string name="revanced_custom_playback_speeds_reset_toast">Afspeelsnelheid hersteld naar: %s</string>
<string name="revanced_speed_tap_and_hold_title">De snelheid van aangepast tikken en vasthouden</string>
<string name="revanced_speed_tap_and_hold_summary">Afspeelsnelheid tussen 0-8</string>
</patch>

View File

@@ -307,9 +307,9 @@ Nie będziesz informowany o żadnych nieoczekiwanych zdarzeniach."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Przycisk od tworzenia Shortsów</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Przycisk Utwórz Short jest ukryty</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Przycisk Utwórz Short jest widoczny</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Ukryj przyciski emoji i znacznika czasu</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Przyciski emoji i znacznika czasu ukryte</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Przyciski emoji i znacznika czasu widoczne</string>
<string name="revanced_hide_comments_timestamp_button_title">Ukryj przycisk znacznika czasu</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Przycisk znacznika czasu jest ukryty</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Przycisk znacznika czasu jest widoczny</string>
<string name="revanced_hide_comments_preview_comment_title">Ukryj podgląd komentarzy</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Podgląd komentarzy jest ukryty</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Podgląd komentarzy jest widoczny</string>
@@ -746,6 +746,9 @@ Aby pokazać menu ścieżki audio, zmień opcję „Fałszuj strumienie wideo”
<string name="revanced_hide_shorts_location_label_title">Etykieta lokalizacji</string>
<string name="revanced_hide_shorts_location_label_summary_on">Etykieta lokalizacji jest ukryta</string>
<string name="revanced_hide_shorts_location_label_summary_off">Etykieta lokalizacji jest widoczna</string>
<string name="revanced_hide_shorts_preview_comment_title">Ukryj komentarz podglądu</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Komentarz podglądu jest ukryty</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Podgląd komentarza jest wyświetlany</string>
<string name="revanced_hide_shorts_save_sound_button_title">Ukryj przycisk \"Zapisz muzykę\"</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Przycisk od zapisywania muzyki jest ukryty</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Przycisk od zapisywania muzyki jest widoczny</string>
@@ -1249,6 +1252,9 @@ Przesuń, aby rozwinąć lub zamknąć"</string>
<string name="revanced_gradient_loading_screen_title">Kolorowy ekran ładowania</string>
<string name="revanced_gradient_loading_screen_summary_on">Ekran ładowania będzie miał kolorowe tło</string>
<string name="revanced_gradient_loading_screen_summary_off">Ekran ładowania będzie miał stałe tło</string>
<string name="splash_screen_animation_style_title">Styl ekranu powitalnego</string>
<string name="splash_screen_animation_style_entry_1">Kolor</string>
<string name="splash_screen_animation_style_entry_2">Czarno-biały</string>
<string name="revanced_seekbar_custom_color_title">Niestandardowy kolor paska postępu</string>
<string name="revanced_seekbar_custom_color_summary_on">Niestandardowy</string>
<string name="revanced_seekbar_custom_color_summary_off">Oryginalny</string>
@@ -1394,7 +1400,7 @@ Włączenie tego może odblokować wyższe jakości wideo"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Przycisk od prędkości</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Przycisk jest widoczny</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Przycisk jest widoczny. Dotknij i przytrzymaj, aby zresetować prędkość odtwarzania do domyślnej</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Przycisk nie jest widoczny</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1406,6 +1412,7 @@ Włączenie tego może odblokować wyższe jakości wideo"</string>
<string name="revanced_custom_playback_speeds_invalid">Prędkości niestandardowe muszą być mniejsze niż %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Nieprawidłowe prędkości odtwarzania niestandardowego</string>
<string name="revanced_custom_playback_speeds_auto">Automatyczne</string>
<string name="revanced_custom_playback_speeds_reset_toast">Prędkość odtwarzania zresetowana do: %s</string>
<string name="revanced_speed_tap_and_hold_title">Szybkość dostosowywania dotknięciem i przytrzymaniem</string>
<string name="revanced_speed_tap_and_hold_summary">Prędkość odtwarzania w granicach 0-8</string>
</patch>

View File

@@ -309,9 +309,9 @@ Você não será notificado sobre nenhum evento inesperado."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Ocultar botão \'Criar um Short\'</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">O botão Criar um Short está oculto</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">O botão Criar um Short é mostrado</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Ocultar botões de emoji e carimbo de data/hora</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Os botões de emoji e carimbo de data/hora estão ocultos</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Os botões de emoji e carimbo de data/hora são mostrados</string>
<string name="revanced_hide_comments_timestamp_button_title">Ocultar o botão de carimbo de data/hora</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">O botão de carimbo de data/hora está oculto</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">O botão de carimbo de data/hora é mostrado</string>
<string name="revanced_hide_comments_preview_comment_title">Ocultar prévia de comentário</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Prévia de comentário está oculta</string>
<string name="revanced_hide_comments_preview_comment_summary_off">A prévia de comentário é exibida</string>
@@ -748,6 +748,9 @@ Para exibir o menu da faixa de áudio, altere \"Spoof video streams\" para iOS T
<string name="revanced_hide_shorts_location_label_title">Ocultar rótulo de localização</string>
<string name="revanced_hide_shorts_location_label_summary_on">Rótulo de localização está oculto</string>
<string name="revanced_hide_shorts_location_label_summary_off">Rótulo de localização é mostrado</string>
<string name="revanced_hide_shorts_preview_comment_title">Ocultar comentário de visualização</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">O comentário de visualização está oculto</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">A visualização do comentário é mostrada</string>
<string name="revanced_hide_shorts_save_sound_button_title">Ocultar botão Salvar música</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">O botão Salvar música está oculto</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">O botão Salvar música será exibido</string>
@@ -1250,6 +1253,9 @@ Passe o dedo para expandir ou fechar"</string>
<string name="revanced_gradient_loading_screen_title">Ativar tela de carregamento em gradiente</string>
<string name="revanced_gradient_loading_screen_summary_on">Tela de carregamento terá um fundo em gradiente</string>
<string name="revanced_gradient_loading_screen_summary_off">Tela de carregamento terá um fundo sólido</string>
<string name="splash_screen_animation_style_title">Estilo da tela inicial</string>
<string name="splash_screen_animation_style_entry_1">Cor</string>
<string name="splash_screen_animation_style_entry_2">Preto e branco</string>
<string name="revanced_seekbar_custom_color_title">Ativar cor personalizada da barra de busca</string>
<string name="revanced_seekbar_custom_color_summary_on">Cor personalizada da barra de busca é mostrada</string>
<string name="revanced_seekbar_custom_color_summary_off">Cor original da barra de busca é mostrada</string>
@@ -1395,7 +1401,7 @@ Habilitar isso pode desbloquear qualidades de vídeo mais altas"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Mostrar botão de velocidade</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Botão não esta oculto</string>
<string name="revanced_playback_speed_dialog_button_summary_on">O botão é exibido. Toque e mantenha pressionado para redefinir a velocidade de reprodução para o padrão</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Botão não está visível</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1407,6 +1413,7 @@ Habilitar isso pode desbloquear qualidades de vídeo mais altas"</string>
<string name="revanced_custom_playback_speeds_invalid">Velocidades personalizadas devem ser menores que %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Velocidades de reprodução personalizadas inválidas</string>
<string name="revanced_custom_playback_speeds_auto">Automático</string>
<string name="revanced_custom_playback_speeds_reset_toast">Velocidade de reprodução redefinida para: %s</string>
<string name="revanced_speed_tap_and_hold_title">Velocidade personalizada de tocar e segurar</string>
<string name="revanced_speed_tap_and_hold_summary">Velocidade de reprodução entre 0-8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Não será notificado de quaisquer eventos inesperados."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Ocultar o botão \'Criar um Short\'</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">O botão Criar um Short está oculto</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">O botão Criar um Short é mostrado</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Ocultar botões de emoji e carimbo de data/hora</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Os botões de emoji e carimbo de data/hora estão ocultos</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Os botões de emoji e carimbo de data/hora são mostrados</string>
<string name="revanced_hide_comments_timestamp_button_title">Ocultar o botão de carimbo de data/hora</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">O botão de carimbo de data/hora está oculto</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">O botão de carimbo de data/hora está visível</string>
<string name="revanced_hide_comments_preview_comment_title">Esconder comentário de pré-visualização</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Visualização do comentário está escondida</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Pré-visualização de comentário é exibida</string>
@@ -750,6 +750,9 @@ Para mostrar o menu da faixa de áudio, altere \"Spoof video streams\" para iOS
<string name="revanced_hide_shorts_location_label_title">Ocultar rótulo de localização</string>
<string name="revanced_hide_shorts_location_label_summary_on">Rótulo de localização está oculto</string>
<string name="revanced_hide_shorts_location_label_summary_off">Rótulo de localização é mostrado</string>
<string name="revanced_hide_shorts_preview_comment_title">Esconder comentário de pré-visualização</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Visualização do comentário está escondida</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Pré-visualização de comentário é exibida</string>
<string name="revanced_hide_shorts_save_sound_button_title">Ocultar botão de salvar música</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">O botão salvar música está oculto</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">O botão salvar música é mostrado</string>
@@ -1253,6 +1256,9 @@ Deslize para expandir ou fechar"</string>
<string name="revanced_gradient_loading_screen_title">Ativar ecrã de carregamento do gradiente</string>
<string name="revanced_gradient_loading_screen_summary_on">Carregar ecrã terá um fundo em gradiente</string>
<string name="revanced_gradient_loading_screen_summary_off">Carregar ecrã terá um fundo sólido</string>
<string name="splash_screen_animation_style_title">Estilo da tela inicial</string>
<string name="splash_screen_animation_style_entry_1">Cor</string>
<string name="splash_screen_animation_style_entry_2">Preto e branco</string>
<string name="revanced_seekbar_custom_color_title">Ativar a cor personalizada</string>
<string name="revanced_seekbar_custom_color_summary_on">Cor personalizada da barra de busca é visível</string>
<string name="revanced_seekbar_custom_color_summary_off">Cor original da barra de busca é visível</string>
@@ -1398,7 +1404,7 @@ Bật tính năng này có thể mở khóa chất lượng video cao hơn"</str
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Mostrar botão de diálogo de velocidade</string>
<string name="revanced_playback_speed_dialog_button_summary_on">O botão está visível</string>
<string name="revanced_playback_speed_dialog_button_summary_on">O botão é mostrado. Toque e segure para redefinir a velocidade de reprodução para o padrão</string>
<string name="revanced_playback_speed_dialog_button_summary_off">O botão não está visível</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1410,6 +1416,7 @@ Bật tính năng này có thể mở khóa chất lượng video cao hơn"</str
<string name="revanced_custom_playback_speeds_invalid">Tốc độ tùy chỉnh phải nhỏ hơn %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Tốc độ phát lại tùy chỉnh không hợp lệ</string>
<string name="revanced_custom_playback_speeds_auto">Automático</string>
<string name="revanced_custom_playback_speeds_reset_toast">Velocidade de reprodução redefinida para: %s</string>
<string name="revanced_speed_tap_and_hold_title">Velocidade personalizada ao tocar e segurar</string>
<string name="revanced_speed_tap_and_hold_summary">Velocidade de reprodução de 0 a 8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Nu veți fi notificat de niciun eveniment neașteptat."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Ascunde butonul \'Creare Short\'</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Butonul Creează un Short este ascuns</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Butonul Creează un Short este afișat</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Ascunde butoanele emoji și timestamp</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Butoanele Emoji și timestamp sunt ascunse</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Butoanele Emoji și timestamp sunt afișate</string>
<string name="revanced_hide_comments_timestamp_button_title">Ascunde butonul de marcaj temporal</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Butonul de marcaj temporal este ascuns</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Butonul de marcaj temporal este afișat</string>
<string name="revanced_hide_comments_preview_comment_title">Ascunde previzualizarea comentariului</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Previzualizarea comentariului este ascunsă</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Previzualizarea comentariului este afișată</string>
@@ -750,6 +750,9 @@ Pentru a afișa meniul pentru pista audio, schimbați opțiunea „Falsifică fl
<string name="revanced_hide_shorts_location_label_title">Ascunde eticheta locației</string>
<string name="revanced_hide_shorts_location_label_summary_on">Eticheta locației este ascunsă</string>
<string name="revanced_hide_shorts_location_label_summary_off">Eticheta locației este afișată</string>
<string name="revanced_hide_shorts_preview_comment_title">Ascunde comentariul de previzualizare</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Comentariul de previzualizare este ascuns</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Previzualizarea comentariului este afișată</string>
<string name="revanced_hide_shorts_save_sound_button_title">Ascunde butonul Salvează melodia</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Butonul de salvare a muzicii este ascuns</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Butonul de salvare a muzicii este afișat</string>
@@ -1252,6 +1255,9 @@ Trageți pentru a extinde sau a închide"</string>
<string name="revanced_gradient_loading_screen_title">Activează ecranul de încărcare gradient</string>
<string name="revanced_gradient_loading_screen_summary_on">Încărcarea ecranului va avea un fundal pentru gradient</string>
<string name="revanced_gradient_loading_screen_summary_off">Ecranul de încărcare va avea un fundal solid</string>
<string name="splash_screen_animation_style_title">Stil ecran de pornire</string>
<string name="splash_screen_animation_style_entry_1">Culoare</string>
<string name="splash_screen_animation_style_entry_2">Alb-negru</string>
<string name="revanced_seekbar_custom_color_title">Activează culoarea barei de căutare personalizate</string>
<string name="revanced_seekbar_custom_color_summary_on">Culoarea personalizată a barei de căutare este afișată</string>
<string name="revanced_seekbar_custom_color_summary_off">Culoarea bara de căutare originală este afișată</string>
@@ -1397,7 +1403,7 @@ Activarea acestei opțiuni poate debloca calități video mai mari"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Arată butonul de dialog de viteză</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Butonul este afișat</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Butonul este afișat. Atingeți și mențineți apăsat pentru a reseta viteza de redare la cea implicită</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Butonul nu este afișat</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1409,6 +1415,7 @@ Activarea acestei opțiuni poate debloca calități video mai mari"</string>
<string name="revanced_custom_playback_speeds_invalid">Vitezele personalizate trebuie să fie mai mici de %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Viteze de redare personalizate nevalide</string>
<string name="revanced_custom_playback_speeds_auto">Automat</string>
<string name="revanced_custom_playback_speeds_reset_toast">Viteza de redare a fost resetată la: %s</string>
<string name="revanced_speed_tap_and_hold_title">Viteză personalizată de apăsare și menținere</string>
<string name="revanced_speed_tap_and_hold_summary">Viteză de redare între 0-8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_comments_create_a_short_button_title">Скрыть кнопку \"Создать Short\"</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Кнопка \"Создать Short\" при ответе на комментарий скрыта</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Кнопка \"Создать Short\" при ответе на комментарий показана</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Скрыть кнопки эмодзи и меток времени</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_timestamp_button_title">Скрыть кнопку меток времени</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Кнопка меток времени скрыта</string>
<string name="revanced_hide_comments_timestamp_button_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>
@@ -750,6 +750,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_location_label_title">Скрыть метку местоположения</string>
<string name="revanced_hide_shorts_location_label_summary_on">Метка местоположения в Shorts скрыта</string>
<string name="revanced_hide_shorts_location_label_summary_off">Метка местоположения в Shorts показана</string>
<string name="revanced_hide_shorts_preview_comment_title">Скрыть предпросмотр комментария</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Предпросмотр комментария под плеером скрыт</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Предпросмотр комментария под плеером показан</string>
<string name="revanced_hide_shorts_save_sound_button_title">Скрыть кнопку \"Сохранить музыку\"</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Кнопка \"Сохранить музыку\" в Shorts скрыта</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Кнопка \"Сохранить музыку\" в Shorts показана</string>
@@ -1253,6 +1256,9 @@ Second \"item\" text"</string>
<string name="revanced_gradient_loading_screen_title">Включить градиентный фон экрана загрузки</string>
<string name="revanced_gradient_loading_screen_summary_on">Градиентный фон экрана загрузки макета включен</string>
<string name="revanced_gradient_loading_screen_summary_off">Сплошной фон экрана загрузки макета включен</string>
<string name="splash_screen_animation_style_title">Стиль заставки</string>
<string name="splash_screen_animation_style_entry_1">Цвет</string>
<string name="splash_screen_animation_style_entry_2">Черно-белый</string>
<string name="revanced_seekbar_custom_color_title">Включить кастомный цвет полосы прогресса</string>
<string name="revanced_seekbar_custom_color_summary_on">Кастомный цвет полосы прогресса включен</string>
<string name="revanced_seekbar_custom_color_summary_off">Оригинальный цвет полосы прогресса включен</string>
@@ -1398,7 +1404,7 @@ Second \"item\" text"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Показать кнопку скорости воспроизведения</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Кнопка выбора скорости воспроизведения показана</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Кнопка показана. Нажмите и удерживайте, чтобы сбросить скорость воспроизведения до значения по умолчанию</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Кнопка выбора скорости воспроизведения скрыта</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1410,6 +1416,7 @@ Second \"item\" text"</string>
<string name="revanced_custom_playback_speeds_invalid">Кастомные скорости должны быть меньше, чем %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Недопустимые кастомные скорости воспроизведения</string>
<string name="revanced_custom_playback_speeds_auto">Автоматически</string>
<string name="revanced_custom_playback_speeds_reset_toast">Скорость воспроизведения сброшена до: %s</string>
<string name="revanced_speed_tap_and_hold_title">Кастомная скорость при нажатии и удержании</string>
<string name="revanced_speed_tap_and_hold_summary">Значение кастомной скорости воспроизведения при нажатии и удержании от 0 до 8</string>
</patch>

View File

@@ -309,9 +309,9 @@ Nebudete informovaní o žiadnych nepredvídaných udalostiach."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Skryť tlačidlo „Vytvoriť krátke video“</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Tlačidlo Vytvoriť Short je skryté</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Tlačidlo Vytvoriť Short je zobrazené</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Skryť tlačidlá s emoji a časovou pečiatkou</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Tlačidlá s emoji a časovou pečiatkou skryté</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Tlačidlá s emoji a časovou pečiatkou sú zobrazené</string>
<string name="revanced_hide_comments_timestamp_button_title">Skryť tlačidlo s časovou pečiatkou</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Tlačidlo s časovou pečiatkou je skryté</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Zobrazí sa tlačidlo s časovou pečiatkou</string>
<string name="revanced_hide_comments_preview_comment_title">Skryť ukážkový komentár</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Komentár ukážky je skrytý</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Zobrazí sa ukážka komentára</string>
@@ -743,6 +743,9 @@ Ak chcete zobraziť ponuku zvukovej stopy, zmeňte možnosť „Oklamať videost
<string name="revanced_hide_shorts_location_label_title">Skryť štítok polohy</string>
<string name="revanced_hide_shorts_location_label_summary_on">Štítok miesta je skrytý</string>
<string name="revanced_hide_shorts_location_label_summary_off">Zobrazí sa štítok s umiestnením</string>
<string name="revanced_hide_shorts_preview_comment_title">Skryť náhľadový komentár</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Náhľadový komentár je skrytý</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Zobrazuje sa ukážka komentára</string>
<string name="revanced_hide_shorts_save_sound_button_title">Skryť tlačidlo Uložiť hudbu</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Tlačidlo na uloženie hudby je skryté</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Tlačidlo na uloženie hudby sa zobrazuje</string>
@@ -1241,6 +1244,9 @@ Potiahnutím rozbalíte alebo zatvoríte"</string>
<string name="revanced_gradient_loading_screen_title">Povoliť obrazovku načítania gradientu</string>
<string name="revanced_gradient_loading_screen_summary_on">Načítavacia obrazovka bude mať pozadie s prechodom</string>
<string name="revanced_gradient_loading_screen_summary_off">Načítavacia obrazovka bude mať pevné pozadie</string>
<string name="splash_screen_animation_style_title">Štýl úvodnej obrazovky</string>
<string name="splash_screen_animation_style_entry_1">Farba</string>
<string name="splash_screen_animation_style_entry_2">Čiernobiela</string>
<string name="revanced_seekbar_custom_color_title">Povoliť vlastnú farbu vyhľadávacieho panela</string>
<string name="revanced_seekbar_custom_color_summary_on">Zobrazí sa vlastná farba panela vyhľadávania</string>
<string name="revanced_seekbar_custom_color_summary_off">Zobrazí sa pôvodná farba vyhľadávacieho panela</string>
@@ -1386,7 +1392,7 @@ Povolením tejto možnosti môžete odomknúť vyššie kvality videa"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Zobraziť dialógové tlačidlo rýchlosti</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Tlačidlo je zobrazené</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Zobrazuje sa tlačidlo. Ťuknite a podržte, ak chcete obnoviť predvolenú rýchlosť prehrávania</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Tlačidlo nie je zobrazené</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1398,6 +1404,7 @@ Povolením tejto možnosti môžete odomknúť vyššie kvality videa"</string>
<string name="revanced_custom_playback_speeds_invalid">Vlastné rýchlosti musia byť menšie ako %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Neplatné vlastné rýchlosti prehrávania</string>
<string name="revanced_custom_playback_speeds_auto">Automaticky</string>
<string name="revanced_custom_playback_speeds_reset_toast">Rýchlosť prehrávania obnovená na: %s</string>
<string name="revanced_speed_tap_and_hold_title">Vlastná rýchlosť ťuknutia a podržania</string>
<string name="revanced_speed_tap_and_hold_summary">Rýchlosť prehrávania medzi 0-8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Ne boste obveščeni o nobenih nepričakovanih dogodkih."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Skrij gumb \"Ustvari Shorts\"</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Gumb »Ustvari Short« je skrit</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Gumb »Ustvari Short« je prikazan</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Skrij gumbe z emojiji in časovnim žigom</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Gumbi z emojiji in časovnim žigom so skriti</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Gumbi z emojiji in časovnim žigom so prikazani</string>
<string name="revanced_hide_comments_timestamp_button_title">Skrij gumb časovnega žiga</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Gumb časovnega žiga je skrit</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Gumb časovnega žiga je prikazan</string>
<string name="revanced_hide_comments_preview_comment_title">Skrij predogled komentarja</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Predogled komentarja je skrit</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Predogled komentarja je prikazan</string>
@@ -750,6 +750,9 @@ Opomba: Omogočanje tega tudi prisilno skrije video oglase"</string>
<string name="revanced_hide_shorts_location_label_title">Skrij oznako lokacije</string>
<string name="revanced_hide_shorts_location_label_summary_on">Oznaka lokacije je skrita</string>
<string name="revanced_hide_shorts_location_label_summary_off">Oznaka lokacije je prikazana</string>
<string name="revanced_hide_shorts_preview_comment_title">Skrij predogled komentarja</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Predogled komentarja je skrit</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Predogled komentarja je prikazan</string>
<string name="revanced_hide_shorts_save_sound_button_title">Skrij gumb \'Shrani glasbo\'</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Gumb za shranjevanje glasbe je skrit</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Gumb za shranjevanje glasbe je prikazan</string>
@@ -1252,6 +1255,9 @@ Podrsnite za razširitev ali zapiranje"</string>
<string name="revanced_gradient_loading_screen_title">Omogoči zaslon za nalaganje z gradientom</string>
<string name="revanced_gradient_loading_screen_summary_on">Zaslon za nalaganje bo imel ozadje z gradientom</string>
<string name="revanced_gradient_loading_screen_summary_off">Zaslon za nalaganje bo imel enobarvno ozadje</string>
<string name="splash_screen_animation_style_title">Slog uvodnega zaslona</string>
<string name="splash_screen_animation_style_entry_1">Barva</string>
<string name="splash_screen_animation_style_entry_2">Črno-belo</string>
<string name="revanced_seekbar_custom_color_title">Omogoči prilagojeno barvo drsnika</string>
<string name="revanced_seekbar_custom_color_summary_on">Prilagojena barva drsnika je prikazana</string>
<string name="revanced_seekbar_custom_color_summary_off">Izvorna barva drsnika je prikazana</string>
@@ -1397,7 +1403,7 @@ Omogočanje tega lahko odklene višje kakovosti videa"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Pokaži gumb za pogovor o hitrosti</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Gumb je prikazan</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Gumb je prikazan. Dotaknite se ga in ga pridržite, da ponastavite hitrost predvajanja na privzeto.</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Gumb ni prikazan</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1409,6 +1415,7 @@ Omogočanje tega lahko odklene višje kakovosti videa"</string>
<string name="revanced_custom_playback_speeds_invalid">Hitrosti predvajanja po meri morajo biti manjše od %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Neveljavne hitrosti predvajanja po meri</string>
<string name="revanced_custom_playback_speeds_auto">Samodejno</string>
<string name="revanced_custom_playback_speeds_reset_toast">Hitrost predvajanja je bila ponastavljena na: %s</string>
<string name="revanced_speed_tap_and_hold_title">Hitrost pritiska in pridržanja po meri</string>
<string name="revanced_speed_tap_and_hold_summary">Hitrost predvajanja med 0 in 8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Ju nuk do të njoftoheni për ndonjë ngjarje të papritur."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Fsheh butonin \"Krijo një Short\"</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Butoni Krijo një Short është i fshehur</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Butoni Krijo një Short është i shfaqur</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Fshih butonat emoji dhe timestamp</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Butonat Emoji dhe timestamp janë të fshehur</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Butonat Emoji dhe timestamp janë të shfaqur</string>
<string name="revanced_hide_comments_timestamp_button_title">Fshih butonin e kohëshënimit</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Butoni i kohëshënimit është i fshehur</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Butoni i kohëshënimit është shfaqur</string>
<string name="revanced_hide_comments_preview_comment_title">Fsheh komentin e parashikimit</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Komenti i parashikimit është i fshehur</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Komenti i parashikimit është i dukshëm</string>
@@ -750,6 +750,9 @@ Për të shfaqur menunë e pistës audio, ndryshoni 'Falsifiko transmetimet vide
<string name="revanced_hide_shorts_location_label_title">Fsheh etiketën e vendndodhjes</string>
<string name="revanced_hide_shorts_location_label_summary_on">Etiketë e vendndodhjes është e fshehur</string>
<string name="revanced_hide_shorts_location_label_summary_off">Etiketë e vendndodhjes shfaqet</string>
<string name="revanced_hide_shorts_preview_comment_title">Fshih komentin e shikimit paraprak</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Komenti i shikimit paraprak është i fshehur</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Parashikimi i komentit shfaqet</string>
<string name="revanced_hide_shorts_save_sound_button_title">Fsheh butonin Ruaj muzikën</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Butoni \"Ruaj muzikën\" është i fshehur</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Butoni \"Ruaj muzikën\" shfaqet</string>
@@ -1251,6 +1254,9 @@ Rrëshqit për të zgjeruar ose mbyllur"</string>
<string name="revanced_gradient_loading_screen_title">Aktivizo ekranin e ngarkimit me gradient</string>
<string name="revanced_gradient_loading_screen_summary_on">Ekrani i ngarkimit do të ketë një sfond me gradient</string>
<string name="revanced_gradient_loading_screen_summary_off">Ekrani i ngarkimit do të ketë një sfond të ngurtë</string>
<string name="splash_screen_animation_style_title">Stili i ekranit hapës</string>
<string name="splash_screen_animation_style_entry_1">Ngjyra</string>
<string name="splash_screen_animation_style_entry_2">E zezë dhe e bardhë</string>
<string name="revanced_seekbar_custom_color_title">Aktivizo ngjyrën e personalizuar të shkallës së kërkimit</string>
<string name="revanced_seekbar_custom_color_summary_on">Ngjyra e personalizuar e shkallës së kërkimit është e dukshme</string>
<string name="revanced_seekbar_custom_color_summary_off">Ngjyra origjinale e shkallës së kërkimit është e dukshme</string>
@@ -1396,7 +1402,7 @@ Aktivizimi i kësaj mund të zhbllokojë cilësi më të larta video"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Shfaq butonin e dialogut të shpejtësisë</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Butoni shfaqet</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Butoni shfaqet. Prekni dhe mbani për të rivendosur shpejtësinë e riprodhimit në atë të parazgjedhur</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Butoni nuk shfaqet</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1408,6 +1414,7 @@ Aktivizimi i kësaj mund të zhbllokojë cilësi më të larta video"</string>
<string name="revanced_custom_playback_speeds_invalid">Shpejtësitë e personalizuara duhet të jenë më të vogla se %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Shpejtësi të pavlefshme të personalizuar të riprodhimit</string>
<string name="revanced_custom_playback_speeds_auto">Automatik</string>
<string name="revanced_custom_playback_speeds_reset_toast">Shpejtësia e riprodhimit u rivendos në: %s</string>
<string name="revanced_speed_tap_and_hold_title">Shpejtësia sipas dëshirës së përdoruesit gjatë përdorimit</string>
<string name="revanced_speed_tap_and_hold_summary">Shpejtësi e riprodhimit midis 0 dhe 8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Nećete biti obavešteni ni o kakvim neočekivanim događajima."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Sakrij dugme „Napravi Short”</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Dugme „Napravi Short” je skriveno</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Dugme „Napravi Short” je prikazano</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Sakrij dugmad za emodži i vremensku oznaku</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Dugmad za emodži i vremensku oznaku su skrivena</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Dugmad za emodži i vremensku oznaku su prikazana</string>
<string name="revanced_hide_comments_timestamp_button_title">Sakrij dugme vremenske oznake</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Dugme vremenske oznake je skriveno</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Dugme vremenske oznake je prikazano</string>
<string name="revanced_hide_comments_preview_comment_title">Sakrij komentar za pregled</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Komentar za pregled je skriven</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Komentar za pregled je prikazan</string>
@@ -750,6 +750,9 @@ Da biste prikazali meni „Audio snimak”, promenite opciju „Lažirani video
<string name="revanced_hide_shorts_location_label_title">Sakrij oznaku lokacije</string>
<string name="revanced_hide_shorts_location_label_summary_on">Oznaka lokacije je skrivena</string>
<string name="revanced_hide_shorts_location_label_summary_off">Oznaka lokacije je prikazana</string>
<string name="revanced_hide_shorts_preview_comment_title">Sakrij pregled komentara</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Pregled komentara je skriven</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Pregled komentara je prikazan</string>
<string name="revanced_hide_shorts_save_sound_button_title">Sakrij dugme „Sačuvaj muziku”</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Dugme „Sačuvaj zvuk” je skriveno</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Dugme „Sačuvaj zvuk” je prikazano</string>
@@ -1252,6 +1255,9 @@ Prevucite da biste proširili ili zatvorili"</string>
<string name="revanced_gradient_loading_screen_title">Omogući gradijentnu pozadinu ekrana učitavanja</string>
<string name="revanced_gradient_loading_screen_summary_on">Ekran učitavanja će imati gradijentnu pozadinu</string>
<string name="revanced_gradient_loading_screen_summary_off">Ekran učitavanja će imati običnu pozadinu</string>
<string name="splash_screen_animation_style_title">Stil ekrana pokretanja</string>
<string name="splash_screen_animation_style_entry_1">Boja</string>
<string name="splash_screen_animation_style_entry_2">Crno-belo</string>
<string name="revanced_seekbar_custom_color_title">Omogući prilagođenu boju trake za premotavanje</string>
<string name="revanced_seekbar_custom_color_summary_on">Prilagođena boja trake za premotavanje je prikazana</string>
<string name="revanced_seekbar_custom_color_summary_off">Originalna boja trake za premotavanje je prikazana</string>
@@ -1397,7 +1403,7 @@ Ako ovo omogućite, mogu biti otključani viši kvaliteti videa"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Prikaži dugme dijaloga za brzinu</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Dugme dijaloga za brzinu je prikazano</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Dugme je prikazano. Dodirnite i zadržite da biste vratili brzinu reprodukcije na podrazumevanu vrednost</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Dugme dijaloga za brzinu nije prikazano</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1409,6 +1415,7 @@ Ako ovo omogućite, mogu biti otključani viši kvaliteti videa"</string>
<string name="revanced_custom_playback_speeds_invalid">Prilagođene brzine moraju biti manje od %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Nevažeće prilagođene brzine reprodukcije</string>
<string name="revanced_custom_playback_speeds_auto">Automatski</string>
<string name="revanced_custom_playback_speeds_reset_toast">Brzina reprodukcije vraćena na: %s</string>
<string name="revanced_speed_tap_and_hold_title">Prilagođena brzina dodirivanja i zadržavanja</string>
<string name="revanced_speed_tap_and_hold_summary">Brzina reprodukcije između 0 i 8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_comments_create_a_short_button_title">Сакриј дугме „Направи Short”</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Дугме „Направи Short” је скривено</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Дугме „Направи Short” је приказано</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Сакриј дугмад за емоџи и временску ознаку</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_timestamp_button_title">Сакриј дугме временске ознаке</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Дугме временске ознаке је скривено</string>
<string name="revanced_hide_comments_timestamp_button_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>
@@ -750,6 +750,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_location_label_title">Сакриј ознаку локације</string>
<string name="revanced_hide_shorts_location_label_summary_on">Ознака локације је скривена</string>
<string name="revanced_hide_shorts_location_label_summary_off">Ознака локације је приказана</string>
<string name="revanced_hide_shorts_preview_comment_title">Сакриј преглед коментара</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Преглед коментара је скривен</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Преглед коментара је приказан</string>
<string name="revanced_hide_shorts_save_sound_button_title">Сакриј дугме „Сачувај музику”</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Дугме „Сачувај звук” је скривено</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Дугме „Сачувај звук” је приказано</string>
@@ -1252,6 +1255,9 @@ Second \"item\" text"</string>
<string name="revanced_gradient_loading_screen_title">Омогући градијентну позадину екрана учитавања</string>
<string name="revanced_gradient_loading_screen_summary_on">Екран учитавања ће имати градијентну позадину</string>
<string name="revanced_gradient_loading_screen_summary_off">Екран учитавања ће имати обичну позадину</string>
<string name="splash_screen_animation_style_title">Стил екрана покретања</string>
<string name="splash_screen_animation_style_entry_1">Боја</string>
<string name="splash_screen_animation_style_entry_2">Црно-бело</string>
<string name="revanced_seekbar_custom_color_title">Омогући прилагођену боју траке за премотавање</string>
<string name="revanced_seekbar_custom_color_summary_on">Прилагођена боја траке за премотавање је приказана</string>
<string name="revanced_seekbar_custom_color_summary_off">Оригинална боја траке за премотавање је приказана</string>
@@ -1397,7 +1403,7 @@ Second \"item\" text"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Прикажи дугме дијалога за брзину</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Дугме дијалога за брзину је приказано</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Дугме је приказано. Додирните и задржите да бисте вратили брзину репродукције на подразумевану вредност</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Дугме дијалога за брзину није приказано</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1409,6 +1415,7 @@ Second \"item\" text"</string>
<string name="revanced_custom_playback_speeds_invalid">Прилагођене брзине морају бити мање од %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Неважеће прилагођене брзине репродукције</string>
<string name="revanced_custom_playback_speeds_auto">Аутоматски</string>
<string name="revanced_custom_playback_speeds_reset_toast">Брзина репродукције враћена на: %s</string>
<string name="revanced_speed_tap_and_hold_title">Прилагођена брзина додиривања и задржавања</string>
<string name="revanced_speed_tap_and_hold_summary">Брзина репродукције између 0 и 8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Du kommer inte att bli meddelad om oväntade händelser."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Dölj knappen \'Skapa en kort\'</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Knappen Skapa en Short är dold</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Knappen Skapa en Short visas</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Dölj emoji- och tidsstämpelknappar</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Emoji- och tidsstämpelknappar är dolda</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Emoji- och tidsstämpelknappar visas</string>
<string name="revanced_hide_comments_timestamp_button_title">Dölj tidsstämpelknappen</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Tidsstämpelknappen är dold</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Tidsstämpelknappen är synlig</string>
<string name="revanced_hide_comments_preview_comment_title">Dölj förhandsgranskningskommentar</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Förhandsgranska kommentaren är dold</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Förhandsgranska kommentar är synlig</string>
@@ -750,6 +750,9 @@ För att visa ljudspårsmenyn, ändra \"Spoof video streams\" till iOS TV"</stri
<string name="revanced_hide_shorts_location_label_title">Dölj platsetikett</string>
<string name="revanced_hide_shorts_location_label_summary_on">Platsetiketten är dold</string>
<string name="revanced_hide_shorts_location_label_summary_off">Platsetikett är synlig</string>
<string name="revanced_hide_shorts_preview_comment_title">Dölj förhandsgranskningskommentar</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Förhandsgranskningskommentar är dold</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Förhandsvisningskommentaren visas</string>
<string name="revanced_hide_shorts_save_sound_button_title">Dölj knapp \'Spara musik\'</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Spara musikknappen är dold</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Spara musikknappen visas</string>
@@ -1252,6 +1255,9 @@ Svep för att expandera eller stänga"</string>
<string name="revanced_gradient_loading_screen_title">Aktivera gradient laddar skärmen</string>
<string name="revanced_gradient_loading_screen_summary_on">Laddar skärmen kommer att ha en lutande bakgrund</string>
<string name="revanced_gradient_loading_screen_summary_off">Laddar skärmen kommer att ha en solid bakgrund</string>
<string name="splash_screen_animation_style_title">Startskärmens stil</string>
<string name="splash_screen_animation_style_entry_1">Färg</string>
<string name="splash_screen_animation_style_entry_2">Svartvitt</string>
<string name="revanced_seekbar_custom_color_title">Aktivera anpassad sökfält färg</string>
<string name="revanced_seekbar_custom_color_summary_on">Anpassad sökfält färg visas</string>
<string name="revanced_seekbar_custom_color_summary_off">Original sökfält färg visas</string>
@@ -1397,7 +1403,7 @@ Att aktivera detta kan låsa upp högre videokvalitet"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Visa hastighetsdialogruta knapp</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Knappen är synlig</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Knappen visas. Tryck och håll ned för att återställa uppspelningshastigheten till standard.</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Knappen är dold</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1409,6 +1415,7 @@ Att aktivera detta kan låsa upp högre videokvalitet"</string>
<string name="revanced_custom_playback_speeds_invalid">Anpassade hastigheter måste vara mindre än %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Ogiltiga anpassade uppspelningshastigheter</string>
<string name="revanced_custom_playback_speeds_auto">Automatiskt</string>
<string name="revanced_custom_playback_speeds_reset_toast">Uppspelningshastighet återställd till: %s</string>
<string name="revanced_speed_tap_and_hold_title">Anpassad hastighet vid tryck och håll</string>
<string name="revanced_speed_tap_and_hold_summary">Uppspelningshastighet mellan 0 och 8.</string>
</patch>

View File

@@ -311,9 +311,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_comments_create_a_short_button_title">ซ่อนปุ่ม \'สร้าง 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_timestamp_button_title">ซ่อนปุ่มประทับเวลา</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">ปุ่มประทับเวลาถูกซ่อน</string>
<string name="revanced_hide_comments_timestamp_button_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>
@@ -748,6 +748,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_location_label_title">ซ่อนป้ายกำกับสถานที่</string>
<string name="revanced_hide_shorts_location_label_summary_on">ป้ายกำกับสถานที่ถูกซ่อน</string>
<string name="revanced_hide_shorts_location_label_summary_off">ป้ายกำกับสถานที่แสดงอยู่</string>
<string name="revanced_hide_shorts_preview_comment_title">ซ่อนความคิดเห็นตัวอย่าง</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">ซ่อนความคิดเห็นตัวอย่างแล้ว</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">แสดงตัวอย่างความคิดเห็น</string>
<string name="revanced_hide_shorts_save_sound_button_title">ซ่อนปุ่มบันทึกเพลง</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">ปุ่มบันทึกเพลงถูกซ่อน</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">ปุ่มบันทึกเพลงแสดงอยู่</string>
@@ -1251,6 +1254,9 @@ User id ของคุณเหมือนกับรหัสผ่าน
<string name="revanced_gradient_loading_screen_title">เปิดใช้งานหน้าจอโหลดแบบไล่ระดับสี</string>
<string name="revanced_gradient_loading_screen_summary_on">หน้าจอโหลดจะมีพื้นหลังแบบไล่ระดับสี</string>
<string name="revanced_gradient_loading_screen_summary_off">หน้าจอโหลดจะมีพื้นหลังแบบทึบ</string>
<string name="splash_screen_animation_style_title">รูปแบบหน้าจอ Splash</string>
<string name="splash_screen_animation_style_entry_1">สี</string>
<string name="splash_screen_animation_style_entry_2">ขาวดำ</string>
<string name="revanced_seekbar_custom_color_title">เปิดใช้งานสีแถบเลื่อนแบบกำหนดเอง</string>
<string name="revanced_seekbar_custom_color_summary_on">แสดงสีแถบเลื่อนแบบกำหนดเอง</string>
<string name="revanced_seekbar_custom_color_summary_off">แสดงสีแถบเลื่อนดั้งเดิม</string>
@@ -1396,7 +1402,7 @@ User id ของคุณเหมือนกับรหัสผ่าน
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">แสดงปุ่มกล่องโต้ตอบความเร็ว</string>
<string name="revanced_playback_speed_dialog_button_summary_on">แสดงปุ่ม</string>
<string name="revanced_playback_speed_dialog_button_summary_on">ปุ่มจะปรากฏขึ้น แตะค้างไว้เพื่อรีเซ็ตความเร็วในการเล่นเป็นค่าเริ่มต้น</string>
<string name="revanced_playback_speed_dialog_button_summary_off">ไม่แสดงปุ่ม</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1408,6 +1414,7 @@ User id ของคุณเหมือนกับรหัสผ่าน
<string name="revanced_custom_playback_speeds_invalid">ความเร็วที่กําหนดเองต้องน้อยกว่า %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">ความเร็วในการเล่นที่กําหนดเองไม่ถูกต้อง</string>
<string name="revanced_custom_playback_speeds_auto">อัตโนมัติ</string>
<string name="revanced_custom_playback_speeds_reset_toast">ความเร็วในการเล่นรีเซ็ตเป็น: %s</string>
<string name="revanced_speed_tap_and_hold_title">**Custom tap and hold speed**</string>
<string name="revanced_speed_tap_and_hold_summary">ความเร็วในการเล่นระหว่าง 0-8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Beklenmedik olaylar hakkında bilgilendirilmeyeceksiniz."</string>
<string name="revanced_hide_comments_create_a_short_button_title">\'Short oluştur\' düğmesini gizle</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Short oluştur düğmesi gizli</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Short oluştur düğmesi görünür</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Emoji ve zaman damgası düğmelerini gizle</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Emoji ve zaman damgası düğmeleri gizli</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Emoji ve zaman damgası düğmeleri görünür</string>
<string name="revanced_hide_comments_timestamp_button_title">Zaman damgası düğmesini gizle</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Zaman damgası düğmesi gizli</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Zaman damgası düğmesi görünür</string>
<string name="revanced_hide_comments_preview_comment_title">Ön izlenen yorumu gizle</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Ön izlenen yorum gizli</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Ön izlenen yorum görünür</string>
@@ -750,6 +750,9 @@ Ses parçası menüsünü göstermek için \"Video akışlarını taklit et\" ay
<string name="revanced_hide_shorts_location_label_title">Konum etiketini gizle</string>
<string name="revanced_hide_shorts_location_label_summary_on">Konum etiketi gizli</string>
<string name="revanced_hide_shorts_location_label_summary_off">Konum etiketi görünür</string>
<string name="revanced_hide_shorts_preview_comment_title">Ön izlenen yorumu gizle</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Ön izlenen yorum gizli</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Ön izlenen yorum görünür</string>
<string name="revanced_hide_shorts_save_sound_button_title">Müziği kaydet düğmesini gizle</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Müziği kaydet düğmesi gizli</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Müziği kaydet düğmesi görünür</string>
@@ -1253,6 +1256,9 @@ Genişletmek veya kapatmak için kaydırın"</string>
<string name="revanced_gradient_loading_screen_title">Gradyan yükleme ekranını etkinleştir</string>
<string name="revanced_gradient_loading_screen_summary_on">Yükleme ekranı gradyan bir arka plana sahip olacak</string>
<string name="revanced_gradient_loading_screen_summary_off">Yükleme ekranı tek renk bir arka plana sahip olacak</string>
<string name="splash_screen_animation_style_title">ılış ekranı stili</string>
<string name="splash_screen_animation_style_entry_1">Renk</string>
<string name="splash_screen_animation_style_entry_2">Siyah ve beyaz</string>
<string name="revanced_seekbar_custom_color_title">Özel zaman çubuğu rengini etkinleştir</string>
<string name="revanced_seekbar_custom_color_summary_on">Özel zaman çubuğu rengi gösterilir</string>
<string name="revanced_seekbar_custom_color_summary_off">Orijinal zaman çubuğu rengi gösterilir</string>
@@ -1398,7 +1404,7 @@ Bunu etkinleştirmek daha yüksek video kalitelerini açabilir"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Hız diyaloğu düğmesini göster</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Düğme gösterilir</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Düğme görünür. Oynatma hızını varsayılana sıfırlamak için dokunup basılı tutun</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Düğme gösterilmez</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1410,6 +1416,7 @@ Bunu etkinleştirmek daha yüksek video kalitelerini açabilir"</string>
<string name="revanced_custom_playback_speeds_invalid">Özel hızlar %s\'den az olmalıdır</string>
<string name="revanced_custom_playback_speeds_parse_exception">Geçersiz özel oynatma hızları</string>
<string name="revanced_custom_playback_speeds_auto">Oto</string>
<string name="revanced_custom_playback_speeds_reset_toast">Oynatma hızı şu değere sıfırlandı: %s</string>
<string name="revanced_speed_tap_and_hold_title">Dokunup basılı tutma özel hızı</string>
<string name="revanced_speed_tap_and_hold_summary">0-8 arası oynatma hızı</string>
</patch>

View File

@@ -312,9 +312,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_comments_create_a_short_button_title">Приховати кнопку \"Створити Short\"</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Кнопку \"Створити Short\" приховано</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Кнопка \"Створити Short\" показується</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Приховати кнопки емодзі та позначки часу</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_timestamp_button_title">Приховати кнопку позначки часу</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Кнопку позначки часу приховано</string>
<string name="revanced_hide_comments_timestamp_button_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>
@@ -751,6 +751,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_location_label_title">Приховати мітку місцезнаходження</string>
<string name="revanced_hide_shorts_location_label_summary_on">Мітку місцезнаходження приховано</string>
<string name="revanced_hide_shorts_location_label_summary_off">Мітка місцезнаходження показується</string>
<string name="revanced_hide_shorts_preview_comment_title">Приховати прев\'ю коментар</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Прев\'ю коментар в секції коментарів приховано</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Прев\'ю коментар в секції коментарів показується</string>
<string name="revanced_hide_shorts_save_sound_button_title">Приховати \"Зберегти музику\"</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Кнопку \"Зберегти музику\" приховано</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Кнопка \"Зберегти музику\" показується</string>
@@ -1253,6 +1256,9 @@ Second \"item\" text"</string>
<string name="revanced_gradient_loading_screen_title">Увімкнути градієнт завантаження</string>
<string name="revanced_gradient_loading_screen_summary_on">Екран завантаження макета матиме градієнтне тло</string>
<string name="revanced_gradient_loading_screen_summary_off">Екран завантаження макета матиме суцільне тло</string>
<string name="splash_screen_animation_style_title">Стиль заставки</string>
<string name="splash_screen_animation_style_entry_1">Колір</string>
<string name="splash_screen_animation_style_entry_2">Чорно-білий</string>
<string name="revanced_seekbar_custom_color_title">Увімкнути користувацький колір</string>
<string name="revanced_seekbar_custom_color_summary_on">Показується користувацький колір смуги прогресу</string>
<string name="revanced_seekbar_custom_color_summary_off">Показується оригінальний колір смуги прогресу</string>
@@ -1398,7 +1404,7 @@ Second \"item\" text"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Кнопка швидкості відтворення</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Кнопка швидкості відтворення показується</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Кнопка показується. Натисніть і утримуйте, щоб відновити стандартну швидкість відтворення</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Кнопка швидкості відтворення не показується</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1410,6 +1416,7 @@ Second \"item\" text"</string>
<string name="revanced_custom_playback_speeds_invalid">Користувацькі швидкості повинні бути менші ніж %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Неправильні користувацькі швидкості відтворення</string>
<string name="revanced_custom_playback_speeds_auto">Авто</string>
<string name="revanced_custom_playback_speeds_reset_toast">Швидкість відтворення скинуто до: %s</string>
<string name="revanced_speed_tap_and_hold_title">Користувацька швидкість при натисканні та утриманні</string>
<string name="revanced_speed_tap_and_hold_summary">Швидкість відтворення від 0 до 8</string>
</patch>

View File

@@ -49,12 +49,12 @@ Second \"item\" text"</string>
<string name="revanced_settings_search_no_results_summary">Thử một từ khóa khác</string>
<string name="revanced_settings_search_remove_message">Xóa khỏi lịch sử tìm kiếm?</string>
<string name="revanced_show_menu_icons_title">Hiện biểu tượng cài đặt ReVanced</string>
<string name="revanced_show_menu_icons_summary_on">Các biểu tượng cài đặt được hiển thị</string>
<string name="revanced_show_menu_icons_summary_on">Các biểu tượng cài đặt được hiện</string>
<string name="revanced_show_menu_icons_summary_off">Các biểu tượng cài đặt không được hiển thị</string>
<string name="revanced_language_title">Ngôn ngữ ReVanced</string>
<string name="revanced_language_user_dialog_message">"Một số ngôn ngữ có thể chưa được dịch đầy đủ hoặc bị thiếu.
<string name="revanced_language_user_dialog_message">"Bản dịch cho một số ngôn ngữ có thể bị thiếu hoặc không đầy đủ.
Để đóng góp bản dịch các ngôn ngữ mới, hãy truy cập translate.revanced.app"</string>
Để dịch các ngôn ngữ mới, hãy truy cập translate.revanced.app"</string>
<string name="revanced_language_DEFAULT">Ngôn ngữ ứng dụng</string>
<string name="revanced_pref_import_export_title">Nhập / Xuất</string>
<string name="revanced_pref_import_export_summary">Nhập / Xuất cài đặt ReVanced</string>
@@ -76,11 +76,11 @@ Hãy làm theo hướng dẫn \"Don't kill my app\" dành cho điện thoại c
Việc cấp quyền chạy nền là bắt buộc để ứng dụng hoạt động."</string>
<string name="gms_core_dialog_open_website_text">Mở trang web</string>
<string name="gms_core_dialog_not_whitelisted_using_battery_optimizations_message">"Cần phải tắt tối ưu hóa pin cho MicroG GmsCore để tránh sự cố.
<string name="gms_core_dialog_not_whitelisted_using_battery_optimizations_message">"Tối ưu hóa pin cho MicroG GmsCore phải được tắt để tránh sự cố.
Tắt tối ưu hóa pin cho MicroG sẽ không ảnh hưởng đáng kể đến hiệu suất sử dụng pin.
Tắt tối ưu hóa pin cho MicroG sẽ không ảnh hưởng tiêu cực đến việc sử dụng pin.
Nhấn nút tiếp tục và cho phép thay đổi lựa chọn tối ưu hóa."</string>
Nhấn nút tiếp tục và cho phép thay đổi tối ưu hóa."</string>
<string name="gms_core_dialog_continue_text">Tiếp tục</string>
</patch>
</app>
@@ -122,9 +122,9 @@ Nhấn nút tiếp tục và cho phép thay đổi lựa chọn tối ưu hóa."
Điều này có thể giúp xác định các thành phần khi tạo bộ lọc tùy chỉnh.
Tuy nhiên, việc bật tính năng này cũng sẽ ghi lại một số dữ liệu người dùng, chẳng hạn như địa chỉ IP của bạn."</string>
<string name="revanced_debug_stacktrace_title">Ghi nhật ký truy vết stack</string>
<string name="revanced_debug_stacktrace_summary_on">Nhật ký gỡ lỗi bao gồm truy vết stack</string>
<string name="revanced_debug_stacktrace_summary_off">Nhật ký gỡ lỗi không bao gồm truy vết stack</string>
<string name="revanced_debug_stacktrace_title">Ghi nhật ký truy vết ngăn xếp</string>
<string name="revanced_debug_stacktrace_summary_on">Nhật ký gỡ lỗi bao gồm truy vết ngăn xếp</string>
<string name="revanced_debug_stacktrace_summary_off">Nhật ký gỡ lỗi không bao gồm truy vết ngăn xếp</string>
<string name="revanced_debug_toast_on_error_title">Hiện thông báo nổi về lỗi ReVanced</string>
<string name="revanced_debug_toast_on_error_summary_on">Thông báo nổi được hiển thị nếu xảy ra lỗi</string>
<string name="revanced_debug_toast_on_error_summary_off">Thông báo nổi không được hiển thị nếu xảy ra lỗi</string>
@@ -169,7 +169,7 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n
<string name="revanced_hide_join_membership_button_summary_off">Nút được hiển thị</string>
<!-- 'For you' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_for_you_shelf_title">Ẩn kệ \'Dành cho bạn\'</string>
<string name="revanced_hide_for_you_shelf_summary_on">Kệ trên trang kênh đã bị ẩn</string>
<string name="revanced_hide_for_you_shelf_summary_on">Kệ trên trang kênh được ẩn</string>
<string name="revanced_hide_for_you_shelf_summary_off">Kệ trên trang kênh được hiển thị</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. -->
@@ -178,16 +178,16 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n
<string name="revanced_hide_notify_me_button_summary_off">Nút được hiển thị</string>
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_search_result_recommendation_labels_title">Ẩn nhãn video đề xuất</string>
<string name="revanced_hide_search_result_recommendation_labels_summary_on">Nhãn “Mọi người cũng xem” và “Bạn cũng có thể thích” đã bị ẩn</string>
<string name="revanced_hide_search_result_recommendation_labels_summary_off">Nhãn “Mọi người cũng xem” và “Bạn cũng có thể thích” được hiển thị</string>
<string name="revanced_hide_search_result_recommendation_labels_summary_on">Nhãn “Mọi người cũng xem” và “Bạn cũng có thể thích” được ẩn</string>
<string name="revanced_hide_search_result_recommendation_labels_summary_off">Nhãn “Mọi người cũng xem” và “Bạn cũng có thể thích” được hiện</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">Ẩn nút \'Hiện thêm\'</string>
<string name="revanced_hide_show_more_button_summary_on">Nút đã bị ẩn</string>
<string name="revanced_hide_show_more_button_summary_off">Nút được hiển thị</string>
<string name="revanced_hide_ticket_shelf_title">Ẩn kệ vé</string>
<string name="revanced_hide_ticket_shelf_summary_on">Kệ vé đã bị ẩn</string>
<string name="revanced_hide_ticket_shelf_summary_off">Kệ vé đang hiển thị</string>
<string name="revanced_hide_ticket_shelf_summary_on">Kệ vé được ẩn</string>
<string name="revanced_hide_ticket_shelf_summary_off">Kệ vé được hiện</string>
<string name="revanced_hide_timed_reactions_title">Ẩn phản ứng theo thời gian</string>
<string name="revanced_hide_timed_reactions_summary_on">Phản ứng theo thời gian đã bị ẩn</string>
<string name="revanced_hide_timed_reactions_summary_off">Phản ứng theo thời gian được hiển thị</string>
@@ -198,8 +198,8 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n
<string name="revanced_hide_chips_shelf_summary_on">Kệ danh mục được đề xuất đã bị ẩn</string>
<string name="revanced_hide_chips_shelf_summary_off">Kệ danh mục được đề xuất được hiển thị</string>
<string name="revanced_hide_expandable_chip_title">Ẩn thẻ có thể mở rộng bên dưới video</string>
<string name="revanced_hide_expandable_chip_summary_on">Thẻ có thể mở rộng đã bị ẩn</string>
<string name="revanced_hide_expandable_chip_summary_off">Thẻ có thể mở rộng được hiển thị</string>
<string name="revanced_hide_expandable_chip_summary_on">Thẻ có thể mở rộng được ẩn</string>
<string name="revanced_hide_expandable_chip_summary_off">Thẻ có thể mở rộng được hiện</string>
<string name="revanced_hide_community_posts_title">Ẩn bài đăng cộng đồng</string>
<string name="revanced_hide_community_posts_summary_on">Bài đăng cộng đồng đã bị ẩn</string>
<string name="revanced_hide_community_posts_summary_off">Bài đăng cộng đồng được hiển thị</string>
@@ -217,7 +217,7 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n
<string name="revanced_hide_community_guidelines_summary_off">Nguyên tắc cộng đồng được hiển thị</string>
<string name="revanced_hide_subscribers_community_guidelines_title">Ẩn nguyên tắc cộng đồng cho người đăng ký</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_on">Nguyên tắc cộng đồng cho người đăng ký đã bị ẩn</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_off">Nguyên tắc cộng đồng dành cho người đăng ký được hiển thị</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_off">Nguyên tắc cộng đồng dành cho người đăng ký được hiện</string>
<string name="revanced_hide_channel_member_shelf_title">Ẩn kệ hội viên kênh</string>
<string name="revanced_hide_channel_member_shelf_summary_on">Kệ hội viên kênh đã bị ẩn</string>
<string name="revanced_hide_channel_member_shelf_summary_off">Kệ hội viên kênh được hiển thị</string>
@@ -229,13 +229,13 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n
<string name="revanced_hide_info_panels_summary_off">Bảng thông tin được hiển thị</string>
<string name="revanced_hide_medical_panels_title">Ẩn bảng thông tin y tế</string>
<string name="revanced_hide_medical_panels_summary_on">Bảng thông tin y tế đã bị ẩn</string>
<string name="revanced_hide_medical_panels_summary_off">Bảng thông tin y tế được hiển thị</string>
<string name="revanced_hide_medical_panels_summary_off">Bảng thông tin y tế được hiện</string>
<string name="revanced_hide_channel_bar_title">Ẩn nút kênh</string>
<string name="revanced_hide_channel_bar_summary_on">Nút kênh đã bị ẩn</string>
<string name="revanced_hide_channel_bar_summary_off">Nút kênh được hiển thị</string>
<string name="revanced_hide_playables_title">Ẩn Playables</string>
<string name="revanced_hide_playables_summary_on">Chơi game đã bị ẩn</string>
<string name="revanced_hide_playables_summary_off">Chơi game được hiển thị</string>
<string name="revanced_hide_playables_title">Ẩn kệ Chơi trò chơi</string>
<string name="revanced_hide_playables_summary_on">Kệ Chơi trò chơi được ẩn</string>
<string name="revanced_hide_playables_summary_off">Kệ Chơi trò chơi được hiện</string>
<string name="revanced_hide_quick_actions_title">Ẩn các hành động nhanh khi ở toàn màn hình</string>
<string name="revanced_hide_quick_actions_summary_on">Hành động nhanh đã bị ẩn</string>
<string name="revanced_hide_quick_actions_summary_off">Hành động nhanh được hiển thị</string>
@@ -255,20 +255,20 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n
<string name="revanced_hide_artist_cards_summary_on">Thẻ nghệ sĩ đã bị ẩn</string>
<string name="revanced_hide_artist_cards_summary_off">Thẻ nghệ sĩ được hiển thị</string>
<string name="revanced_hide_ai_generated_video_summary_section_title">Ẩn \'Bản tóm tắt video do AI tạo\'</string>
<string name="revanced_hide_ai_generated_video_summary_section_summary_on">Phần tóm tắt video đã bị ẩn</string>
<string name="revanced_hide_ai_generated_video_summary_section_summary_on">Phần tóm tắt video được ẩn</string>
<string name="revanced_hide_ai_generated_video_summary_section_summary_off">Phần tóm tắt video được hiển thị</string>
<string name="revanced_hide_ask_section_title">Ẩn Hỏi</string>
<string name="revanced_hide_ask_section_summary_on">Phần Hỏi đã bị ẩn</string>
<string name="revanced_hide_ask_section_summary_off">Phần Hỏi được hiển thị</string>
<string name="revanced_hide_ask_section_summary_on">Phần Hỏi được ẩn</string>
<string name="revanced_hide_ask_section_summary_off">Phần Hỏi được hiện</string>
<string name="revanced_hide_attributes_section_title">Ẩn Thuộc tính</string>
<string name="revanced_hide_attributes_section_summary_on">Phần Địa điểm nổi bật, Trò chơi, Âm nhạc và Người được đề cập đã bị ẩn</string>
<string name="revanced_hide_attributes_section_summary_on">Phần Địa điểm nổi bật, Trò chơi, Âm nhạc và Người được đề cập được ẩn</string>
<string name="revanced_hide_attributes_section_summary_off">Phần Địa điểm nổi bật, Trò chơi, Âm nhạc và Người được đề cập được hiển thị</string>
<string name="revanced_hide_chapters_section_title">Ẩn Chương</string>
<string name="revanced_hide_chapters_section_summary_on">Phần chương đã bị ẩn</string>
<string name="revanced_hide_chapters_section_summary_off">Phần chương được hiển thị</string>
<string name="revanced_hide_how_this_was_made_section_title">Ẩn \'Cách nội dung này được tạo ra\'</string>
<string name="revanced_hide_how_this_was_made_section_summary_on">Phần cách nội dung được tạo ra đã bị ẩn</string>
<string name="revanced_hide_how_this_was_made_section_summary_off">Phần cách nội dung được tạo ra được hiển thị</string>
<string name="revanced_hide_how_this_was_made_section_summary_on">Phần cách nội dung được tạo ra được ẩn</string>
<string name="revanced_hide_how_this_was_made_section_summary_off">Phần cách nội dung được tạo ra được hiện</string>
<string name="revanced_hide_podcast_section_title">Ẩn \'Khám phá podcast\'</string>
<string name="revanced_hide_podcast_section_summary_on">Phần Khám phá podcast đã bị ẩn</string>
<string name="revanced_hide_podcast_section_summary_off">Phần Khám phá podcast được hiển thị</string>
@@ -301,19 +301,19 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n
<string name="revanced_hide_comments_ai_chat_summary_summary_off">Tóm tắt cuộc trò chuyện được hiển thị</string>
<string name="revanced_hide_comments_ai_summary_title">Ẩn tóm tắt Bình luận AI</string>
<string name="revanced_hide_comments_ai_summary_summary_on">Tóm tắt bình luận đã bị ẩn</string>
<string name="revanced_hide_comments_ai_summary_summary_off">Tóm tắt bình luận được hiển thị</string>
<string name="revanced_hide_comments_ai_summary_summary_off">Tóm tắt bình luận được hiện</string>
<string name="revanced_hide_comments_by_members_header_title">Ẩn tiêu đề \'Bình luận của hội viên\'</string>
<string name="revanced_hide_comments_by_members_header_summary_on">Tiêu đề bình luận của hội viên đã bị ẩn</string>
<string name="revanced_hide_comments_by_members_header_summary_off">Tiêu đề bình luận của hội viên được hiển thị</string>
<string name="revanced_hide_comments_by_members_header_summary_on">Tiêu đề Bình luận của hội viên được ẩn</string>
<string name="revanced_hide_comments_by_members_header_summary_off">Tiêu đề Bình luận của hội viên được hiện</string>
<string name="revanced_hide_comments_section_title">Ẩn phần bình luận</string>
<string name="revanced_hide_comments_section_summary_on">Phần Bình luận đã bị ẩn</string>
<string name="revanced_hide_comments_section_summary_off">Phần Bình luận được hiển thị</string>
<string name="revanced_hide_comments_create_a_short_button_title">Ẩn nút \'Tạo video ngắn\'</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Nút Tạo video ngắn đã bị ẩn</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Nút Tạo video ngắn được hiển thị</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Ẩn nút biểu tượng cảm xúc và dấu thời gian</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Nút biểu tượng cảm xúc và dấu thời gian đã bị ẩn</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Nút biểu tượng cảm xúc và dấu thời gian được hiển thị</string>
<string name="revanced_hide_comments_timestamp_button_title">Ẩn nút dấu thời gian</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Nút dấu thời gian được ẩn</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Nút dấu thời gian được hiện</string>
<string name="revanced_hide_comments_preview_comment_title">Ẩn xem trước bình luận</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Xem trước bình luận đã bị ẩn</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Xem trước bình luận được hiển thị</string>
@@ -330,7 +330,7 @@ Nếu cài đặt này được bật và Doodle đang hiển thị tại khu v
<string name="revanced_custom_filter_screen_title">Bộ lọc tùy chỉnh</string>
<string name="revanced_custom_filter_screen_summary">Ẩn các thành phần bằng bộ lọc tùy chỉnh</string>
<string name="revanced_custom_filter_title">Bật bộ lọc tùy chỉnh</string>
<string name="revanced_custom_filter_summary_on">Bộ lọc tùy chỉnh đã bật</string>
<string name="revanced_custom_filter_summary_on">Bộ lọc tùy chỉnh được bật</string>
<string name="revanced_custom_filter_summary_off">Bộ lọc tuỳ chỉnh đã tắt</string>
<string name="revanced_custom_filter_strings_title">Bộ lọc tùy chỉnh</string>
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
@@ -426,10 +426,10 @@ Tính năng này chỉ khả dụng cho các thiết bị cũ hơn"</string>
<string name="revanced_share_copy_url_success">Đã chép URL vào bảng nhớ tạm</string>
<string name="revanced_share_copy_url_timestamp_success">Đã chép URL với dấu thời gian</string>
<string name="revanced_copy_video_url_title">Hiện nút sao chép URL video</string>
<string name="revanced_copy_video_url_summary_on">Nút được hiển thị. Chạm để sao chép video URL. Chạm và giữ để sao chép với dấu thời gian</string>
<string name="revanced_copy_video_url_summary_on">Nút được hiển thị. Chạm để sao chép URL video. Chạm và giữ để sao chép với dấu thời gian</string>
<string name="revanced_copy_video_url_summary_off">Nút không được hiển thị</string>
<string name="revanced_copy_video_url_timestamp_title">Hiện nút sao chép URL với dấu thời gian</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Nút được hiển thị. Chạm để sao chép video URL với dấu thời gian. Chạm và giữ để sao chép video không kèm theo dấu thời gian</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Nút được hiện. Chạm để sao chép video URL với dấu thời gian. Chạm và giữ để sao chép video không kèm theo dấu thời gian</string>
<string name="revanced_copy_video_url_timestamp_summary_off">Nút không được hiển thị</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
@@ -443,9 +443,9 @@ Tính năng này chỉ khả dụng cho các thiết bị cũ hơn"</string>
<string name="revanced_external_downloader_screen_summary">Các thiết lập trình tải xuống bên ngoài</string>
<string name="revanced_external_downloader_title">Hiện nút tải xuống bên ngoài</string>
<string name="revanced_external_downloader_summary_on">Nút tải xuống trong trình phát đã được hiển thị</string>
<string name="revanced_external_downloader_summary_off">Nút tải xuống trong trình phát không được hiển thị</string>
<string name="revanced_external_downloader_summary_off">Nút tải xuống trong trình phát không được hiện</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">Thay thế nút hành động Tải xuống</string>
<string name="revanced_external_downloader_action_button_title">Thay thế Nút hành động tải xuống</string>
<string name="revanced_external_downloader_action_button_summary_on">Nút tải xuống mở trình tải xuống bên ngoài</string>
<string name="revanced_external_downloader_action_button_summary_off">Nút tải xuống mở trình tải xuống nội bộ ứng dụng</string>
<string name="revanced_external_downloader_name_title">Tên gói trình tải xuống</string>
@@ -464,12 +464,12 @@ Tính năng này chỉ khả dụng cho các thiết bị cũ hơn"</string>
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
<string name="revanced_swipe_brightness_title">Bật cử chỉ độ sáng</string>
<string name="revanced_swipe_brightness_summary_on">"Đã bật vuốt độ sáng toàn màn hình
<string name="revanced_swipe_brightness_summary_on">"Vuốt chỉnh độ sáng toàn màn hình đã bật
Điều chỉnh độ sáng bằng cách vuốt dọc ở bên trái màn hình"</string>
<string name="revanced_swipe_brightness_summary_off">Đã tắt vuốt độ sáng toàn màn hình</string>
<string name="revanced_swipe_brightness_summary_off">Vuốt độ sáng toàn màn hình đã tắt</string>
<string name="revanced_swipe_volume_title">Bật cử chỉ âm lượng</string>
<string name="revanced_swipe_volume_summary_on">"Đã bật vuốt âm lượng toàn màn hình
<string name="revanced_swipe_volume_summary_on">"Vuốt âm lượng toàn màn hình đã bật
Điều chỉnh âm lượng bằng cách vuốt dọc ở bên phải màn hình"</string>
<string name="revanced_swipe_volume_summary_off">Vuốt âm lượng toàn màn hình đã tắt</string>
@@ -568,23 +568,23 @@ Tính năng này chỉ khả dụng cho các thiết bị cũ hơn"</string>
<string name="revanced_navigation_buttons_screen_summary">Ẩn hoặc thay đổi các nút ở thanh điều hướng</string>
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<string name="revanced_hide_home_button_title">Ẩn Trang chủ</string>
<string name="revanced_hide_home_button_summary_on">Nút trang chủ đã bị ẩn</string>
<string name="revanced_hide_home_button_summary_off">Nút trang chủ được hiển thị</string>
<string name="revanced_hide_home_button_summary_on">Nút trang chủ được ẩn</string>
<string name="revanced_hide_home_button_summary_off">Nút trang chủ được hiện</string>
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_hide_shorts_button_title">Ẩn Shorts</string>
<string name="revanced_hide_shorts_button_summary_on">Nút Shorts đã bị ẩn</string>
<string name="revanced_hide_shorts_button_summary_off">Nút Shorts được hiển thị</string>
<string name="revanced_hide_shorts_button_summary_off">Nút Shorts được hiện</string>
<!-- The Create button has no display name. Translate normally. -->
<string name="revanced_hide_create_button_title">Ẩn Tạo</string>
<string name="revanced_hide_create_button_title">Ẩn nút Tạo</string>
<string name="revanced_hide_create_button_summary_on">Nút tạo đã bị ẩn</string>
<string name="revanced_hide_create_button_summary_off">Nút tạo được hiển thị</string>
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_hide_subscriptions_button_title">Ẩn Kênh đăng ký</string>
<string name="revanced_hide_subscriptions_button_summary_on">Nút kênh đăng ký đã bị ẩn</string>
<string name="revanced_hide_subscriptions_button_summary_off">Nút kênh đăng ký được hiển thị</string>
<string name="revanced_hide_subscriptions_button_summary_on">Nút kênh đăng ký được ẩn</string>
<string name="revanced_hide_subscriptions_button_summary_off">Nút kênh đăng ký được hiện</string>
<string name="revanced_hide_notifications_button_title">Ẩn Thông báo</string>
<string name="revanced_hide_notifications_button_summary_on">Nút thông báo đã bị ẩn</string>
<string name="revanced_hide_notifications_button_summary_off">Nút thông báo được hiển thị</string>
<string name="revanced_hide_notifications_button_summary_on">Nút thông báo được ẩn</string>
<string name="revanced_hide_notifications_button_summary_off">Nút thông báo được hiện</string>
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_switch_create_with_notifications_button_title">Chuyển vị nút Tạo với nút Thông báo</string>
<string name="revanced_switch_create_with_notifications_button_summary_on">"Nút tạo được chuyển đổi với nút Thông báo
@@ -656,16 +656,16 @@ Nếu việc thay đổi cài đặt này không có hiệu lực, hãy thử ch
<string name="revanced_hide_player_flyout_audio_track_summary_on">Nút bản âm thanh đã bị ẩn</string>
<string name="revanced_hide_player_flyout_audio_track_summary_off">Nút bản âm thanh được hiển thị</string>
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
<string name="revanced_hide_player_flyout_audio_track_not_available">"Trình đơn bản âm thanh đã bị ẩn
<string name="revanced_hide_player_flyout_audio_track_not_available">"Menu theo dõi âm thanh được ẩn
Để hiển thị trình đơn Bản âm thanh, hãy thay đổi 'Giả mạo luồng phát video' thành iOS TV"</string>
Để hiện trình đơn Theo dõi âm thanh, hãy thay đổi 'Giả mạo luồng video' thành iOS TV"</string>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
<string name="revanced_hide_player_flyout_watch_in_vr_title">Ẩn Xem trong thực tế ảo</string>
<string name="revanced_hide_player_flyout_watch_in_vr_summary_on">Trình đơn xem trong thực tế ảo đã bị ẩn</string>
<string name="revanced_hide_player_flyout_watch_in_vr_summary_off">Trình đơn xem trong thực tế ảo được hiển thị</string>
<string name="revanced_hide_player_flyout_video_quality_footer_title">Ẩn trình đơn chất lượng video dưới</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_on">Trình đơn chất lượng video bên dưới đã bị ẩn</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">Trình đơn chất lượng video bên dưới được hiển thị</string>
<string name="revanced_hide_player_flyout_video_quality_footer_title">Ẩn trình đơn chất lượng chân video</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_on">Trình đơn chất lượng chân video được ẩn</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">Trình đơn chất lượng chân video được hiện</string>
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<string name="revanced_hide_player_previous_next_buttons_title">Ẩn các nút Trước &amp; Tiếp theo</string>
@@ -673,12 +673,12 @@ Nếu việc thay đổi cài đặt này không có hiệu lực, hãy thử ch
<string name="revanced_hide_player_previous_next_buttons_summary_off">Các nút được hiển thị</string>
<string name="revanced_hide_cast_button_title">Ẩn nút truyền</string>
<string name="revanced_hide_cast_button_summary_on">Nút Truyền đã bị ẩn</string>
<string name="revanced_hide_cast_button_summary_off">Nút Truyền được hiển thị</string>
<string name="revanced_hide_cast_button_summary_off">Nút Truyền được hiện</string>
<!-- This button does not display any text, but 'captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title' -->
<string name="revanced_hide_captions_button_title">Ẩn nút Chú thích</string>
<string name="revanced_hide_captions_button_summary_on">Nút phụ đề đã bị ẩn</string>
<string name="revanced_hide_captions_button_summary_off">Nút phụ đề được hiển thị</string>
<string name="revanced_hide_autoplay_button_title">Ẩn nút Phát tự động</string>
<string name="revanced_hide_autoplay_button_title">Ẩn nút Tự động phát</string>
<string name="revanced_hide_autoplay_button_summary_on">Nút tự động phát đã bị ẩn</string>
<string name="revanced_hide_autoplay_button_summary_off">Nút tự động phát được hiển thị</string>
</patch>
@@ -695,11 +695,11 @@ Nếu việc thay đổi cài đặt này không có hiệu lực, hãy thử ch
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
<string name="revanced_hide_info_cards_title">Ẩn thẻ thông tin</string>
<string name="revanced_hide_info_cards_summary_on">Thẻ thông tin đã bị ẩn</string>
<string name="revanced_hide_info_cards_summary_off">Thẻ thông tin được hiển thị</string>
<string name="revanced_hide_info_cards_summary_off">Thẻ thông tin được hiện</string>
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
<string name="revanced_disable_rolling_number_animations_title">Tắt chuyển động cuộn số</string>
<string name="revanced_disable_rolling_number_animations_summary_on">Số cuộn không chuyển động</string>
<string name="revanced_disable_rolling_number_animations_summary_on">Số cuộn không được chuyển động</string>
<string name="revanced_disable_rolling_number_animations_summary_off">Số cuộn được chuyển động</string>
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
@@ -750,6 +750,9 @@ Nếu việc thay đổi cài đặt này không có hiệu lực, hãy thử ch
<string name="revanced_hide_shorts_location_label_title">Ẩn nhãn vị trí</string>
<string name="revanced_hide_shorts_location_label_summary_on">Nhãn vị trí đã bị ẩn</string>
<string name="revanced_hide_shorts_location_label_summary_off">Nhãn vị trí được hiển thị</string>
<string name="revanced_hide_shorts_preview_comment_title">Ẩn xem trước bình luận</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Xem trước bình luận được ẩn</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Xem trước bình luận được hiện</string>
<string name="revanced_hide_shorts_save_sound_button_title">Ẩn nút Lưu âm thanh</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Nút lưu nhạc đã bị ẩn</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Nút lưu nhạc được hiển thị</string>
@@ -771,9 +774,9 @@ Nếu việc thay đổi cài đặt này không có hiệu lực, hãy thử ch
<string name="revanced_hide_shorts_stickers_title">Ẩn nhãn dán</string>
<string name="revanced_hide_shorts_stickers_summary_on">Nhãn dán đã bị ẩn</string>
<string name="revanced_hide_shorts_stickers_summary_off">Nhãn dán được hiển thị</string>
<string name="revanced_hide_shorts_like_fountain_title">Ẩn hiệu ứng thị giác nút Thích</string>
<string name="revanced_hide_shorts_like_fountain_summary_on">Hiệu ứng đài phun nút thích đã bị ẩn</string>
<string name="revanced_hide_shorts_like_fountain_summary_off">Hiệu ứng đài phun nút thích được hiển thị</string>
<string name="revanced_hide_shorts_like_fountain_title">Ẩn hiệu ứng đài phun nút Thích</string>
<string name="revanced_hide_shorts_like_fountain_summary_on">Hiệu ứng đài phun nút thích được ẩn</string>
<string name="revanced_hide_shorts_like_fountain_summary_off">Hiệu ứng đài phun nút thích được hiện</string>
<string name="revanced_hide_shorts_like_button_title">Ẩn nút Thích</string>
<string name="revanced_hide_shorts_like_button_summary_on">Nút thích đã bị ẩn</string>
<string name="revanced_hide_shorts_like_button_summary_off">Nút thích được hiển thị</string>
@@ -1252,6 +1255,9 @@ Vuốt để mở rộng hoặc đóng"</string>
<string name="revanced_gradient_loading_screen_title">Bật màn hình tải màu dốc</string>
<string name="revanced_gradient_loading_screen_summary_on">Màn hình tải sẽ có một nền màu dốc</string>
<string name="revanced_gradient_loading_screen_summary_off">Màn hình tải sẽ có một nền màu đặc</string>
<string name="splash_screen_animation_style_title">Kiểu màn hình chờ</string>
<string name="splash_screen_animation_style_entry_1">Màu</string>
<string name="splash_screen_animation_style_entry_2">Đen và trắng</string>
<string name="revanced_seekbar_custom_color_title">Bật màu tùy chỉnh thanh tiến trình</string>
<string name="revanced_seekbar_custom_color_summary_on">Màu tùy chỉnh thanh tiến trình được hiển thị</string>
<string name="revanced_seekbar_custom_color_summary_off">Màu gốc thanh tiến trình được hiển thị</string>
@@ -1397,7 +1403,7 @@ Bật tính năng này có thể mở khóa chất lượng video cao hơn"</str
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Hiện nút hộp thoại tốc độ phát</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Nút được hiển thị</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Nút được hiển thị. Nhấn và giữ để đặt lại tốc độ phát về mặc định</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Nút không được hiển thị</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1409,6 +1415,7 @@ Bật tính năng này có thể mở khóa chất lượng video cao hơn"</str
<string name="revanced_custom_playback_speeds_invalid">Tốc độ tùy chỉnh phải nhỏ hơn %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Tốc độ phát lại tùy chỉnh không hợp lệ</string>
<string name="revanced_custom_playback_speeds_auto">Tự động</string>
<string name="revanced_custom_playback_speeds_reset_toast">Tốc độ phát đã được đặt lại thành: %s</string>
<string name="revanced_speed_tap_and_hold_title">Tốc độ chạm và giữ tùy chỉnh</string>
<string name="revanced_speed_tap_and_hold_summary">Tốc độ phát từ 0 đến 8</string>
</patch>

View File

@@ -311,9 +311,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_comments_create_a_short_button_title">隐藏「创建 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_timestamp_button_title">隐藏时间戳按钮</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">时间戳按钮已隐藏</string>
<string name="revanced_hide_comments_timestamp_button_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>
@@ -491,6 +491,10 @@ Second \"item\" text"</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_overlay_progress_brightness_color_title">滑动提示层亮度颜色</string>
<string name="revanced_swipe_overlay_progress_brightness_color_summary">亮度控件进度条的颜色</string>
<string name="revanced_swipe_overlay_progress_volume_color_title">滑动提示层音量颜色</string>
<string name="revanced_swipe_overlay_progress_volume_color_summary">音量控件进度条的颜色</string>
<string name="revanced_swipe_text_overlay_size_title">滑动提示层文字大小</string>
<string name="revanced_swipe_text_overlay_size_summary">滑动提示层的文字大小,范围为 1-30</string>
<string name="revanced_swipe_text_overlay_size_invalid_toast">文字大小必须在 1-30 之间</string>
@@ -746,6 +750,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_location_label_title">隐藏位置标签</string>
<string name="revanced_hide_shorts_location_label_summary_on">位置标签已隐藏</string>
<string name="revanced_hide_shorts_location_label_summary_off">位置标签已显示</string>
<string name="revanced_hide_shorts_preview_comment_title">隐藏预览评论</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">预览评论已隐藏</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">预览评论已显示</string>
<string name="revanced_hide_shorts_save_sound_button_title">隐藏「保存音乐」按钮</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">保存音乐按钮已隐藏</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">保存音乐按钮已显示</string>
@@ -1253,6 +1260,9 @@ Second \"item\" text"</string>
<string name="revanced_gradient_loading_screen_title">启用渐变加载屏幕</string>
<string name="revanced_gradient_loading_screen_summary_on">加载屏幕将具有渐变背景</string>
<string name="revanced_gradient_loading_screen_summary_off">加载屏幕将具有纯色背景</string>
<string name="splash_screen_animation_style_title">启动画面样式</string>
<string name="splash_screen_animation_style_entry_1">颜色</string>
<string name="splash_screen_animation_style_entry_2">黑白</string>
<string name="revanced_seekbar_custom_color_title">启用自定义进度条颜色</string>
<string name="revanced_seekbar_custom_color_summary_on">自定义进度条颜色显示</string>
<string name="revanced_seekbar_custom_color_summary_off">显示原始进度条颜色</string>
@@ -1398,7 +1408,7 @@ Second \"item\" text"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">显示播放速度对话框按钮</string>
<string name="revanced_playback_speed_dialog_button_summary_on">按钮已显示</string>
<string name="revanced_playback_speed_dialog_button_summary_on">按钮已显示。点住即可将播放速度重置为默认值</string>
<string name="revanced_playback_speed_dialog_button_summary_off">按钮未显示</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1410,6 +1420,7 @@ Second \"item\" text"</string>
<string name="revanced_custom_playback_speeds_invalid">自定义速度必须小于 %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">自定义播放速度无效</string>
<string name="revanced_custom_playback_speeds_auto">自动</string>
<string name="revanced_custom_playback_speeds_reset_toast">已将播放速度重置为:%s</string>
<string name="revanced_speed_tap_and_hold_title">自定义长按速度</string>
<string name="revanced_speed_tap_and_hold_summary">0-8之间的播放速度</string>
</patch>

View File

@@ -285,9 +285,6 @@ Second \"item\" text"</string>
<string name="revanced_hide_comments_create_a_short_button_title">隱藏「建立 Short」按鈕</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">已隱藏「建立 Short」按鈕</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">已顯示「建立 Short」按鈕</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">隱藏表情符號和時間戳記按鈕</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>
@@ -1347,7 +1344,6 @@ Second \"item\" text"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">顯示速度對話方塊按鈕</string>
<string name="revanced_playback_speed_dialog_button_summary_on">已顯示按鈕</string>
<string name="revanced_playback_speed_dialog_button_summary_off">不顯示按鈕</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1359,6 +1355,7 @@ Second \"item\" text"</string>
<string name="revanced_custom_playback_speeds_invalid">自訂速度必須小於 %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">自訂播放速度格式不正確</string>
<string name="revanced_custom_playback_speeds_auto">自動</string>
<string name="revanced_custom_playback_speeds_reset_toast">已將播放速度重設為:%s</string>
<string name="revanced_speed_tap_and_hold_title">自訂輕觸和按住的速度</string>
<string name="revanced_speed_tap_and_hold_summary">播放速度介於 0 到 8 之間</string>
</patch>

View File

@@ -187,6 +187,21 @@
<item>AUTOMOTIVE</item>
</string-array>
</patch>
<patch id="layout.theme.themePatch">
<!-- Since the 30fps looks bad, and the 2/5 second styles are not useful
(YouTube closes the animation as soon as the feed is loaded),
only the 60fps 1 second styles are exposed in the settings.
Imported settings data can still be manually edited to force the other styles. -->
<string-array name="splash_screen_animation_style_entries">
<item>@string/splash_screen_animation_style_entry_1</item>
<item>@string/splash_screen_animation_style_entry_2</item>
</string-array>
<string-array name="splash_screen_animation_style_entry_values">
<item>FPS_60_ONE_SECOND</item>
<item>FPS_60_BLACK_AND_WHITE</item>
</string-array>
</patch>
<patch id="layout.player.fullscreen.exitFullscreenPatch">
<string-array name="revanced_exit_fullscreen_entries">
<item>@string/revanced_exit_fullscreen_entry_1</item>
@@ -385,6 +400,28 @@
<item>240</item>
<item>144</item>
</string-array>
<!-- Forcing video qualities lower than what's available doesn't work with Shorts, such as 144p.
If 144p is forced, after a few seconds the quality resets back to 720p/1080p. -->
<string-array name="revanced_shorts_quality_default_entries">
<item>@string/revanced_video_quality_default_entry_1</item>
<item>2160p</item>
<item>1440p</item>
<item>1080p</item>
<item>720p</item>
<item>480p</item>
<item>360p</item>
<item>240p</item>
</string-array>
<string-array name="revanced_shorts_quality_default_entry_values">
<item>-2</item>
<item>2160</item>
<item>1440</item>
<item>1080</item>
<item>720</item>
<item>480</item>
<item>360</item>
<item>240</item>
</string-array>
</patch>
</app>
<app id="twitch">

View File

@@ -371,9 +371,9 @@ You will not be notified of any unexpected events."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Hide \'Create a Short\' button</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Create a Short button is hidden</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Create a Short button is shown</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_title">Hide emoji and timestamp buttons</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_on">Emoji and timestamp buttons are hidden</string>
<string name="revanced_hide_comments_timestamp_and_emoji_buttons_summary_off">Emoji and timestamp buttons are shown</string>
<string name="revanced_hide_comments_timestamp_button_title">Hide timestamp button</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Timestamp button is hidden</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Timestamp button is shown</string>
<string name="revanced_hide_comments_preview_comment_title">Hide preview comment</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Preview comment is hidden</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Preview comment is shown</string>
@@ -812,6 +812,9 @@ To show the Audio track menu, change \'Spoof video streams\' to iOS TV"</string>
<string name="revanced_hide_shorts_location_label_title">Hide location label</string>
<string name="revanced_hide_shorts_location_label_summary_on">Location label is hidden</string>
<string name="revanced_hide_shorts_location_label_summary_off">Location label is shown</string>
<string name="revanced_hide_shorts_preview_comment_title">Hide preview comment</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Preview comment is hidden</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Preview comment is shown</string>
<string name="revanced_hide_shorts_save_sound_button_title">Hide Save music button</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Save music button is hidden</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Save music button is shown</string>
@@ -1320,6 +1323,9 @@ Swipe to expand or close"</string>
<string name="revanced_gradient_loading_screen_title">Enable gradient loading screen</string>
<string name="revanced_gradient_loading_screen_summary_on">Loading screen will have a gradient background</string>
<string name="revanced_gradient_loading_screen_summary_off">Loading screen will have a solid background</string>
<string name="splash_screen_animation_style_title">Splash screen style</string>
<string name="splash_screen_animation_style_entry_1">Color</string>
<string name="splash_screen_animation_style_entry_2">Black and white</string>
<string name="revanced_seekbar_custom_color_title">Enable custom seekbar color</string>
<string name="revanced_seekbar_custom_color_summary_on">Custom seekbar color is shown</string>
<string name="revanced_seekbar_custom_color_summary_off">Original seekbar color is shown</string>
@@ -1466,7 +1472,7 @@ Enabling this can unlock higher video qualities"</string>
</patch>
<patch id="video.speed.button.playbackSpeedButtonPatch">
<string name="revanced_playback_speed_dialog_button_title">Show speed dialog button</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Button is shown</string>
<string name="revanced_playback_speed_dialog_button_summary_on">Button is shown. Tap and hold to reset playback speed to default</string>
<string name="revanced_playback_speed_dialog_button_summary_off">Button is not shown</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
@@ -1478,6 +1484,7 @@ Enabling this can unlock higher video qualities"</string>
<string name="revanced_custom_playback_speeds_invalid">Custom speeds must be less than %s</string>
<string name="revanced_custom_playback_speeds_parse_exception">Invalid custom playback speeds</string>
<string name="revanced_custom_playback_speeds_auto">Auto</string>
<string name="revanced_custom_playback_speeds_reset_toast">Playback speed reset to: %s</string>
<string name="revanced_speed_tap_and_hold_title">Custom tap and hold speed</string>
<string name="revanced_speed_tap_and_hold_summary">Playback speed between 0-8</string>
</patch>