Compare commits

...

17 Commits

Author SHA1 Message Date
semantic-release-bot
b9efb05271 chore: Release v5.0.3-dev.4 [skip ci]
## [5.0.3-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.0.3-dev.3...v5.0.3-dev.4) (2024-11-18)

### Bug Fixes

* **YouTube - Spoof app version:** Adjust legacy spoof targets ([#3934](https://github.com/ReVanced/revanced-patches/issues/3934)) ([2e3b3dc](2e3b3dca4b))
2024-11-18 08:20:28 +00:00
LisoUseInAIKyrios
2e3b3dca4b fix(YouTube - Spoof app version): Adjust legacy spoof targets (#3934) 2024-11-18 12:17:22 +04:00
semantic-release-bot
19eaee09d0 chore: Release v5.0.3-dev.3 [skip ci]
## [5.0.3-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.0.3-dev.2...v5.0.3-dev.3) (2024-11-15)

### Bug Fixes

* **YouTube - Playback speed:** Add 'Auto' speed. Always override speed if default is set to 1.0x ([#3914](https://github.com/ReVanced/revanced-patches/issues/3914)) ([78f3fd6](78f3fd6aa4))
2024-11-15 03:59:51 +00:00
LisoUseInAIKyrios
78f3fd6aa4 fix(YouTube - Playback speed): Add 'Auto' speed. Always override speed if default is set to 1.0x (#3914) 2024-11-15 07:56:36 +04:00
semantic-release-bot
71ed37beb1 chore: Release v5.0.3-dev.2 [skip ci]
## [5.0.3-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.0.3-dev.1...v5.0.3-dev.2) (2024-11-15)

### Bug Fixes

* **YouTube - Spoof app version:** Remove broken spoof targets when patching 19.25+ ([#3915](https://github.com/ReVanced/revanced-patches/issues/3915)) ([17b5b2e](17b5b2e384))
2024-11-15 03:51:14 +00:00
github-actions[bot]
5aae234c43 chore: Sync translations (#3920) 2024-11-15 07:47:49 +04:00
LisoUseInAIKyrios
17b5b2e384 fix(YouTube - Spoof app version): Remove broken spoof targets when patching 19.25+ (#3915) 2024-11-15 07:44:28 +04:00
LisoUseInAIKyrios
462b61c2e9 refactor(YouTube - Hide mix playlist): Do not search path or buffer unless setting is enabled 2024-11-14 01:37:14 +04:00
semantic-release-bot
f23b7fffc8 chore: Release v5.0.3-dev.1 [skip ci]
## [5.0.3-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.0.2...v5.0.3-dev.1) (2024-11-13)

### Bug Fixes

* **YouTube - Change header:** Apply header changes to A/B layout ([#3907](https://github.com/ReVanced/revanced-patches/issues/3907)) ([69c504c](69c504ca2f))
2024-11-13 13:15:15 +00:00
LisoUseInAIKyrios
69c504ca2f fix(YouTube - Change header): Apply header changes to A/B layout (#3907) 2024-11-13 17:12:26 +04:00
semantic-release-bot
fc4b0d7c39 chore: Release v5.0.2 [skip ci]
## [5.0.2](https://github.com/ReVanced/revanced-patches/compare/v5.0.1...v5.0.2) (2024-11-12)

### Bug Fixes

* **Sync for Reddit - Fix /s/ links:** Fix patch by using correct fingerprints ([68ec011](68ec011003))
* **Sync for Reddit - Spoof client:** Fix patch by using correct fingerprints ([273bedc](273bedc74c))
* **YouTube - Player controls:** Show player control buttons with A/B layout ([#3901](https://github.com/ReVanced/revanced-patches/issues/3901)) ([e441745](e4417455c9))
2024-11-12 13:47:36 +00:00
oSumAtrIX
02e66b3d43 chore: Merge branch dev to main (#3899) 2024-11-12 14:44:18 +01:00
semantic-release-bot
a75c15b950 chore: Release v5.0.2-dev.2 [skip ci]
## [5.0.2-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.0.2-dev.1...v5.0.2-dev.2) (2024-11-12)

### Bug Fixes

* **YouTube - Player controls:** Show player control buttons with A/B layout ([#3901](https://github.com/ReVanced/revanced-patches/issues/3901)) ([e441745](e4417455c9))
2024-11-12 06:10:45 +00:00
LisoUseInAIKyrios
e4417455c9 fix(YouTube - Player controls): Show player control buttons with A/B layout (#3901) 2024-11-12 10:07:32 +04:00
semantic-release-bot
5253f4bfa4 chore: Release v5.0.2-dev.1 [skip ci]
## [5.0.2-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.0.1...v5.0.2-dev.1) (2024-11-11)

### Bug Fixes

* **Sync for Reddit - Fix /s/ links:** Fix patch by using correct fingerprints ([68ec011](68ec011003))
* **Sync for Reddit - Spoof client:** Fix patch by using correct fingerprints ([273bedc](273bedc74c))
2024-11-11 23:57:42 +00:00
oSumAtrIX
273bedc74c fix(Sync for Reddit - Spoof client): Fix patch by using correct fingerprints 2024-11-12 00:55:01 +01:00
oSumAtrIX
68ec011003 fix(Sync for Reddit - Fix /s/ links): Fix patch by using correct fingerprints 2024-11-12 00:44:54 +01:00
57 changed files with 572 additions and 230 deletions

View File

@@ -1,3 +1,55 @@
## [5.0.3-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.0.3-dev.3...v5.0.3-dev.4) (2024-11-18)
### Bug Fixes
* **YouTube - Spoof app version:** Adjust legacy spoof targets ([#3934](https://github.com/ReVanced/revanced-patches/issues/3934)) ([f5794c1](https://github.com/ReVanced/revanced-patches/commit/f5794c1f896c331d76fdfc299e31a2773f2209ca))
## [5.0.3-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.0.3-dev.2...v5.0.3-dev.3) (2024-11-15)
### Bug Fixes
* **YouTube - Playback speed:** Add 'Auto' speed. Always override speed if default is set to 1.0x ([#3914](https://github.com/ReVanced/revanced-patches/issues/3914)) ([497739e](https://github.com/ReVanced/revanced-patches/commit/497739e8ce6933c1f1ea46edffc102e56b985623))
## [5.0.3-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.0.3-dev.1...v5.0.3-dev.2) (2024-11-15)
### Bug Fixes
* **YouTube - Spoof app version:** Remove broken spoof targets when patching 19.25+ ([#3915](https://github.com/ReVanced/revanced-patches/issues/3915)) ([9e18eca](https://github.com/ReVanced/revanced-patches/commit/9e18ecab1877dd33a3ad0fe216e6b91a8daaf1f8))
## [5.0.3-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.0.2...v5.0.3-dev.1) (2024-11-13)
### Bug Fixes
* **YouTube - Change header:** Apply header changes to A/B layout ([#3907](https://github.com/ReVanced/revanced-patches/issues/3907)) ([6ccf114](https://github.com/ReVanced/revanced-patches/commit/6ccf11426ec9e9cd9c8e89a2443f0d0645cc78b1))
## [5.0.2](https://github.com/ReVanced/revanced-patches/compare/v5.0.1...v5.0.2) (2024-11-12)
### Bug Fixes
* **Sync for Reddit - Fix /s/ links:** Fix patch by using correct fingerprints ([a0ad07e](https://github.com/ReVanced/revanced-patches/commit/a0ad07ef3170dbe1d91ebd40f11d97b63d1c63d0))
* **Sync for Reddit - Spoof client:** Fix patch by using correct fingerprints ([5776de3](https://github.com/ReVanced/revanced-patches/commit/5776de3cfbfa62360267eb6026525d2da8c45654))
* **YouTube - Player controls:** Show player control buttons with A/B layout ([#3901](https://github.com/ReVanced/revanced-patches/issues/3901)) ([bb526bc](https://github.com/ReVanced/revanced-patches/commit/bb526bc00a384eb808f46267e5802c8e5beaa7d5))
## [5.0.2-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.0.2-dev.1...v5.0.2-dev.2) (2024-11-12)
### Bug Fixes
* **YouTube - Player controls:** Show player control buttons with A/B layout ([#3901](https://github.com/ReVanced/revanced-patches/issues/3901)) ([bb526bc](https://github.com/ReVanced/revanced-patches/commit/bb526bc00a384eb808f46267e5802c8e5beaa7d5))
## [5.0.2-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.0.1...v5.0.2-dev.1) (2024-11-11)
### Bug Fixes
* **Sync for Reddit - Fix /s/ links:** Fix patch by using correct fingerprints ([a0ad07e](https://github.com/ReVanced/revanced-patches/commit/a0ad07ef3170dbe1d91ebd40f11d97b63d1c63d0))
* **Sync for Reddit - Spoof client:** Fix patch by using correct fingerprints ([5776de3](https://github.com/ReVanced/revanced-patches/commit/5776de3cfbfa62360267eb6026525d2da8c45654))
## [5.0.1](https://github.com/ReVanced/revanced-patches/compare/v5.0.0...v5.0.1) (2024-11-11)

View File

@@ -53,4 +53,18 @@ public final class EnableDebuggingPatch {
return value;
}
/**
* Injection point.
*/
public static String isStringFeatureFlagEnabled(String value, long flag, String defaultValue) {
if (BaseSettings.DEBUG.get() && !defaultValue.equals(value)) {
if (featureFlags.putIfAbsent(flag, true) == null) {
Logger.printDebug(() -> " string feature is enabled: " + flag
+ " value: " + value + (defaultValue.isEmpty() ? "" : " default: " + defaultValue));
}
}
return value;
}
}

View File

@@ -8,6 +8,7 @@ import app.revanced.extension.shared.Logger;
@SuppressWarnings("unused")
public class PlayerControlsPatch {
/**
* Injection point.
*/
@@ -41,4 +42,11 @@ public class PlayerControlsPatch {
public static void fullscreenButtonVisibilityChanged(boolean isVisible) {
// Code added during patching.
}
/**
* Injection point.
*/
public static String getPlayerTopControlsLayoutResourceName(String original) {
return "default";
}
}

View File

@@ -31,7 +31,7 @@ public final class LayoutComponentsFilter extends Filter {
"cell_description_body"
);
private static final ByteArrayFilterGroup mixPlaylists = new ByteArrayFilterGroup(
Settings.HIDE_MIX_PLAYLISTS,
null,
"&list="
);
@@ -344,6 +344,10 @@ public final class LayoutComponentsFilter extends Filter {
*/
public static boolean filterMixPlaylists(final Object conversionContext, @Nullable final byte[] bytes) {
try {
if (!Settings.HIDE_MIX_PLAYLISTS.get()) {
return false;
}
if (bytes == null) {
Logger.printDebug(() -> "bytes is null");
return false;

View File

@@ -1,5 +1,6 @@
package app.revanced.extension.youtube.patches.playback.speed;
import static app.revanced.extension.shared.StringRef.sf;
import static app.revanced.extension.shared.StringRef.str;
import android.preference.ListPreference;
@@ -10,15 +11,18 @@ import android.view.ViewParent;
import androidx.annotation.NonNull;
import app.revanced.extension.youtube.patches.components.PlaybackSpeedMenuFilterPatch;
import app.revanced.extension.youtube.settings.Settings;
import java.util.Arrays;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
import java.util.Arrays;
import app.revanced.extension.youtube.patches.components.PlaybackSpeedMenuFilterPatch;
import app.revanced.extension.youtube.settings.Settings;
@SuppressWarnings("unused")
public class CustomPlaybackSpeedPatch {
private static final float PLAYBACK_SPEED_AUTO = Settings.PLAYBACK_SPEED_DEFAULT.defaultValue;
/**
* Maximum playback speed, exclusive value. Custom speeds must be less than this value.
*
@@ -26,7 +30,7 @@ public class CustomPlaybackSpeedPatch {
* and the UI selector starts flickering and acting weird.
* Over 10x and the speeds show up out of order in the UI selector.
*/
public static final float MAXIMUM_PLAYBACK_SPEED = 8;
public static final float PLAYBACK_SPEED_MAXIMUM = 8;
/**
* Custom playback speeds.
@@ -69,8 +73,8 @@ public class CustomPlaybackSpeedPatch {
throw new IllegalArgumentException();
}
if (speedFloat >= MAXIMUM_PLAYBACK_SPEED) {
resetCustomSpeeds(str("revanced_custom_playback_speeds_invalid", MAXIMUM_PLAYBACK_SPEED));
if (speedFloat >= PLAYBACK_SPEED_MAXIMUM) {
resetCustomSpeeds(str("revanced_custom_playback_speeds_invalid", PLAYBACK_SPEED_MAXIMUM));
loadCustomSpeeds();
return;
}
@@ -98,10 +102,15 @@ public class CustomPlaybackSpeedPatch {
@SuppressWarnings("deprecation")
public static void initializeListPreference(ListPreference preference) {
if (preferenceListEntries == null) {
preferenceListEntries = new String[customPlaybackSpeeds.length];
preferenceListEntryValues = new String[customPlaybackSpeeds.length];
final int numberOfEntries = customPlaybackSpeeds.length + 1;
preferenceListEntries = new String[numberOfEntries];
preferenceListEntryValues = new String[numberOfEntries];
int i = 0;
// Auto speed (same behavior as unpatched).
preferenceListEntries[0] = sf("revanced_custom_playback_speeds_auto").toString();
preferenceListEntryValues[0] = String.valueOf(PLAYBACK_SPEED_AUTO);
int i = 1;
for (float speed : customPlaybackSpeeds) {
String speedString = String.valueOf(speed);
preferenceListEntries[i] = speedString + "x";

View File

@@ -33,7 +33,7 @@ public final class RememberPlaybackSpeedPatch {
// With the 0.05x menu, if the speed is set by integrations 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.MAXIMUM_PLAYBACK_SPEED - 0.05f);
playbackSpeed = Math.min(playbackSpeed, CustomPlaybackSpeedPatch.PLAYBACK_SPEED_MAXIMUM - 0.05f);
// Prevent toast spamming if using the 0.05x adjustments.
// Show exactly one toast after the user stops interacting with the speed menu.

View File

@@ -9,6 +9,7 @@ import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerH
import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerType;
import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerType.*;
import static app.revanced.extension.youtube.patches.SeekbarThumbnailsPatch.SeekbarThumbnailsHighQualityAvailability;
import static app.revanced.extension.youtube.patches.VersionCheckPatch.IS_19_17_OR_GREATER;
import static app.revanced.extension.youtube.sponsorblock.objects.CategoryBehaviour.*;
import app.revanced.extension.shared.Logger;
@@ -23,7 +24,6 @@ import app.revanced.extension.youtube.patches.spoof.SpoofAppVersionPatch;
import app.revanced.extension.youtube.patches.spoof.SpoofVideoStreamsPatch;
import app.revanced.extension.youtube.sponsorblock.SponsorBlockSettings;
@SuppressWarnings("deprecation")
public class Settings extends BaseSettings {
// Video
public static final BooleanSetting RESTORE_OLD_VIDEO_QUALITY_MENU = new BooleanSetting("revanced_restore_old_video_quality_menu", TRUE);
@@ -33,7 +33,7 @@ public class Settings extends BaseSettings {
// Speed
public static final BooleanSetting REMEMBER_PLAYBACK_SPEED_LAST_SELECTED = new BooleanSetting("revanced_remember_playback_speed_last_selected", FALSE);
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", 1.0f);
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);
@@ -128,8 +128,7 @@ public class Settings extends BaseSettings {
public static final BooleanSetting HIDE_AUTOPLAY_BUTTON = new BooleanSetting("revanced_hide_autoplay_button", TRUE, true);
public static final BooleanSetting HIDE_CAST_BUTTON = new BooleanSetting("revanced_hide_cast_button", TRUE, true);
public static final BooleanSetting HIDE_PLAYER_PREVIOUS_NEXT_BUTTONS = new BooleanSetting("revanced_hide_player_previous_next_buttons", FALSE, true);
@Deprecated
public static final BooleanSetting HIDE_PLAYER_BUTTONS = new BooleanSetting("revanced_hide_player_buttons", FALSE, true);
private static final BooleanSetting DEPRECATED_HIDE_PLAYER_BUTTONS = new BooleanSetting("revanced_hide_player_buttons", FALSE, true);
public static final BooleanSetting COPY_VIDEO_URL = new BooleanSetting("revanced_copy_video_url", FALSE);
public static final BooleanSetting COPY_VIDEO_URL_TIMESTAMP = new BooleanSetting("revanced_copy_video_url_timestamp", TRUE);
public static final BooleanSetting PLAYBACK_SPEED_DIALOG_BUTTON = new BooleanSetting("revanced_playback_speed_dialog_button", FALSE);
@@ -192,14 +191,13 @@ public class Settings extends BaseSettings {
public static final BooleanSetting HIDE_PLAYER_FLYOUT_SLEEP_TIMER = new BooleanSetting("revanced_hide_player_flyout_sleep_timer", FALSE);
public static final BooleanSetting HIDE_PLAYER_FLYOUT_STABLE_VOLUME = new BooleanSetting("revanced_hide_player_flyout_stable_volume", FALSE);
public static final BooleanSetting HIDE_PLAYER_FLYOUT_WATCH_IN_VR = new BooleanSetting("revanced_hide_player_flyout_watch_in_vr", TRUE);
@Deprecated
private static final BooleanSetting DEPRECATED_HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER = new BooleanSetting("revanced_hide_video_quality_menu_footer", FALSE);
public static final BooleanSetting HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER = new BooleanSetting("revanced_hide_player_flyout_video_quality_footer", FALSE);
// General layout
public static final EnumSetting<StartPage> CHANGE_START_PAGE = new EnumSetting<>("revanced_change_start_page", StartPage.ORIGINAL, true);
public static final BooleanSetting SPOOF_APP_VERSION = new BooleanSetting("revanced_spoof_app_version", FALSE, true, "revanced_spoof_app_version_user_dialog_message");
public static final StringSetting SPOOF_APP_VERSION_TARGET = new StringSetting("revanced_spoof_app_version_target", "17.41.37", true, parent(SPOOF_APP_VERSION));
public static final StringSetting SPOOF_APP_VERSION_TARGET = new StringSetting("revanced_spoof_app_version_target", IS_19_17_OR_GREATER ? "18.38.44" : "17.33.42", true, parent(SPOOF_APP_VERSION));
public static final BooleanSetting TABLET_LAYOUT = new BooleanSetting("revanced_tablet_layout", FALSE, true, "revanced_tablet_layout_user_dialog_message");
public static final BooleanSetting WIDE_SEARCHBAR = new BooleanSetting("revanced_wide_searchbar", FALSE, true);
public static final BooleanSetting BYPASS_IMAGE_REGION_RESTRICTIONS = new BooleanSetting("revanced_bypass_image_region_restrictions", FALSE, true);
@@ -378,12 +376,12 @@ public class Settings extends BaseSettings {
migrateOldSettingToNew(DEPRECATED_SB_UUID_OLD_MIGRATION_SETTING, SB_PRIVATE_USER_ID);
// Old spoof versions that no longer work reliably.
if (SpoofAppVersionPatch.isSpoofingToLessThan("17.33.00")) {
if (SpoofAppVersionPatch.isSpoofingToLessThan(SPOOF_APP_VERSION_TARGET.defaultValue)) {
Logger.printInfo(() -> "Resetting spoof app version target");
Settings.SPOOF_APP_VERSION_TARGET.resetToDefault();
SPOOF_APP_VERSION_TARGET.resetToDefault();
}
migrateOldSettingToNew(HIDE_PLAYER_BUTTONS, HIDE_PLAYER_PREVIOUS_NEXT_BUTTONS);
migrateOldSettingToNew(DEPRECATED_HIDE_PLAYER_BUTTONS, HIDE_PLAYER_PREVIOUS_NEXT_BUTTONS);
migrateOldSettingToNew(DEPRECATED_HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER, HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER);

View File

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

View File

@@ -1444,10 +1444,12 @@ public final class app/revanced/util/BytecodeUtilsKt {
public static final fun indexOfFirstInstructionOrThrow (Lcom/android/tools/smali/dexlib2/iface/Method;Lcom/android/tools/smali/dexlib2/Opcode;)I
public static synthetic fun indexOfFirstInstructionOrThrow$default (Lcom/android/tools/smali/dexlib2/iface/Method;ILcom/android/tools/smali/dexlib2/Opcode;ILjava/lang/Object;)I
public static synthetic fun indexOfFirstInstructionOrThrow$default (Lcom/android/tools/smali/dexlib2/iface/Method;ILkotlin/jvm/functions/Function1;ILjava/lang/Object;)I
public static final fun indexOfFirstInstructionReversed (Lcom/android/tools/smali/dexlib2/iface/Method;Lcom/android/tools/smali/dexlib2/Opcode;)I
public static final fun indexOfFirstInstructionReversed (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/Integer;Lcom/android/tools/smali/dexlib2/Opcode;)I
public static final fun indexOfFirstInstructionReversed (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/Integer;Lkotlin/jvm/functions/Function1;)I
public static synthetic fun indexOfFirstInstructionReversed$default (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/Integer;Lcom/android/tools/smali/dexlib2/Opcode;ILjava/lang/Object;)I
public static synthetic fun indexOfFirstInstructionReversed$default (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/Integer;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)I
public static final fun indexOfFirstInstructionReversedOrThrow (Lcom/android/tools/smali/dexlib2/iface/Method;Lcom/android/tools/smali/dexlib2/Opcode;)I
public static final fun indexOfFirstInstructionReversedOrThrow (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/Integer;Lcom/android/tools/smali/dexlib2/Opcode;)I
public static final fun indexOfFirstInstructionReversedOrThrow (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/Integer;Lkotlin/jvm/functions/Function1;)I
public static synthetic fun indexOfFirstInstructionReversedOrThrow$default (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/Integer;Lcom/android/tools/smali/dexlib2/Opcode;ILjava/lang/Object;)I

View File

@@ -63,20 +63,20 @@ val spoofClientPatch = spoofClientPatch(
val randomName = (0..100000).random()
val userAgent = "$randomName:app.revanced.$randomName:v1.0.0 (by /u/revanced)"
imgurImageAPIFingerprint.method.replaceInstruction(
getUserAgentFingerprint.method.replaceInstruction(
0,
"""
const-string v0, "$userAgent"
return-object v0
""",
const-string v0, "$userAgent"
return-object v0
""",
)
// endregion
// region Patch Imgur API URL.
val apiUrlIndex = getUserAgentFingerprint.stringMatches!!.first().index
getUserAgentFingerprint.method.replaceInstruction(
val apiUrlIndex = imgurImageAPIFingerprint.stringMatches!!.first().index
imgurImageAPIFingerprint.method.replaceInstruction(
apiUrlIndex,
"const-string v1, \"https://api.imgur.com/3/image\"",
)

View File

@@ -6,8 +6,6 @@ import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.util.smali.ExternalLabel
import app.revanced.patches.reddit.customclients.RESOLVE_S_LINK_METHOD
import app.revanced.patches.reddit.customclients.SET_ACCESS_TOKEN_METHOD
import app.revanced.patches.reddit.customclients.boostforreddit.fix.slink.getOAuthAccessTokenFingerprint
import app.revanced.patches.reddit.customclients.boostforreddit.fix.slink.handleNavigationFingerprint
import app.revanced.patches.reddit.customclients.fixSLinksPatch
import app.revanced.patches.reddit.customclients.sync.syncforreddit.extension.sharedExtensionPatch
@@ -26,7 +24,7 @@ val fixSLinksPatch = fixSLinksPatch(
execute {
// region Patch navigation handler.
handleNavigationFingerprint.method.apply {
linkHelperOpenLinkFingerprint.method.apply {
val urlRegister = "p3"
val tempRegister = "v2"
@@ -46,7 +44,7 @@ val fixSLinksPatch = fixSLinksPatch(
// region Patch set access token.
getOAuthAccessTokenFingerprint.method.addInstruction(
setAuthorizationHeaderFingerprint.method.addInstruction(
0,
"invoke-static { p0 }, $EXTENSION_CLASS_DESCRIPTOR->$SET_ACCESS_TOKEN_METHOD",
)

View File

@@ -3,9 +3,12 @@ package app.revanced.patches.youtube.layout.branding.header
import app.revanced.patcher.patch.PatchException
import app.revanced.patcher.patch.resourcePatch
import app.revanced.patcher.patch.stringOption
import app.revanced.patches.youtube.misc.playservice.is_19_25_or_greater
import app.revanced.patches.youtube.misc.playservice.versionCheckPatch
import app.revanced.util.ResourceGroup
import app.revanced.util.Utils.trimIndentMultiline
import app.revanced.util.copyResources
import app.revanced.util.findElementByAttributeValueOrThrow
import java.io.File
private const val HEADER_FILE_NAME = "yt_wordmark_header"
@@ -34,6 +37,8 @@ val changeHeaderPatch = resourcePatch(
description = "Applies a custom header in the top left corner within the app. Defaults to the ReVanced header.",
use = false,
) {
dependsOn(versionCheckPatch)
compatibleWith("com.google.android.youtube")
val header by stringOption(
@@ -79,7 +84,7 @@ val changeHeaderPatch = resourcePatch(
/**
* A function that overwrites both header variants in the target resource directories.
*/
val overwriteFromTo: (String, String) -> Unit = { from: String, to: String ->
fun overwriteFromTo(from: String, to: String) {
targetResourceDirectories.forEach { directory ->
variants.forEach { variant ->
val fromPath = directory.resolve("${from}_$variant.png")
@@ -91,23 +96,28 @@ val changeHeaderPatch = resourcePatch(
}
// Functions to overwrite the header to the different variants.
val toPremium = { overwriteFromTo(PREMIUM_HEADER_FILE_NAME, HEADER_FILE_NAME) }
val toHeader = { overwriteFromTo(HEADER_FILE_NAME, PREMIUM_HEADER_FILE_NAME) }
val toReVanced = {
fun toPremium() { overwriteFromTo(PREMIUM_HEADER_FILE_NAME, HEADER_FILE_NAME) }
fun toHeader() { overwriteFromTo(HEADER_FILE_NAME, PREMIUM_HEADER_FILE_NAME) }
fun toReVanced() {
// Copy the ReVanced header to the resource directories.
targetResourceFiles.forEach { copyResources("change-header/revanced", it) }
// Overwrite the premium with the custom header as well.
toHeader()
}
val toReVancedBorderless = {
fun toReVancedBorderless() {
// Copy the ReVanced borderless header to the resource directories.
targetResourceFiles.forEach { copyResources("change-header/revanced-borderless", it) }
targetResourceFiles.forEach {
copyResources(
"change-header/revanced-borderless",
it
)
}
// Overwrite the premium with the custom header as well.
toHeader()
}
val toCustom = {
fun toCustom() {
val sourceFolders = File(header!!).listFiles { file -> file.isDirectory }
?: throw PatchException("The provided path is not a directory: $header")
@@ -136,11 +146,42 @@ val changeHeaderPatch = resourcePatch(
}
when (header) {
HEADER_OPTION -> toHeader
PREMIUM_HEADER_OPTION -> toPremium
REVANCED_HEADER_OPTION -> toReVanced
REVANCED_BORDERLESS_HEADER_OPTION -> toReVancedBorderless
else -> toCustom
}()
HEADER_OPTION -> toHeader()
PREMIUM_HEADER_OPTION -> toPremium()
REVANCED_HEADER_OPTION -> toReVanced()
REVANCED_BORDERLESS_HEADER_OPTION -> toReVancedBorderless()
else -> toCustom()
}
// Fix 19.25+ A/B layout with different header icons:
// yt_ringo2_wordmark_header, yt_ringo2_premium_wordmark_header
//
// These images are webp and not png, so overwriting them is not so simple.
// Instead change styles.xml to use the old drawable resources.
if (is_19_25_or_greater) {
document("res/values/styles.xml").use { document ->
arrayOf(
"CairoLightThemeRingo2Updates" to variants[0],
"CairoDarkThemeRingo2Updates" to variants[1]
).forEach { (styleName, theme) ->
val style = document.childNodes.findElementByAttributeValueOrThrow(
"name",
styleName,
)
val drawable = "@drawable/${HEADER_FILE_NAME}_${theme}"
arrayOf(
"ytWordmarkHeader",
"ytPremiumWordmarkHeader"
).forEach { itemName ->
style.childNodes.findElementByAttributeValueOrThrow(
"name",
itemName,
).textContent = drawable
}
}
}
}
}
}

View File

@@ -8,6 +8,8 @@ import app.revanced.patches.all.misc.resources.addResourcesPatch
import app.revanced.patches.shared.misc.settings.preference.ListPreference
import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.playservice.is_19_17_or_greater
import app.revanced.patches.youtube.misc.playservice.versionCheckPatch
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
import app.revanced.patches.youtube.misc.settings.settingsPatch
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
@@ -19,12 +21,14 @@ private const val EXTENSION_CLASS_DESCRIPTOR =
val spoofAppVersionPatch = bytecodePatch(
name = "Spoof app version",
description = "Adds an option to trick YouTube into thinking you are running an older version of the app. " +
"This can be used to restore old UI elements and features.",
"This can be used to restore old UI elements and features. " +
"Patching 19.16.39 or lower includes additional older spoofing targets.",
) {
dependsOn(
sharedExtensionPatch,
settingsPatch,
addResourcesPatch,
versionCheckPatch
)
compatibleWith(
@@ -43,10 +47,19 @@ val spoofAppVersionPatch = bytecodePatch(
PreferenceScreen.GENERAL_LAYOUT.addPreferences(
SwitchPreference("revanced_spoof_app_version"),
ListPreference(
key = "revanced_spoof_app_version_target",
summaryKey = null,
),
if (is_19_17_or_greater) {
ListPreference(
key = "revanced_spoof_app_version_target",
summaryKey = null,
)
} else {
ListPreference(
key = "revanced_spoof_app_version_target",
summaryKey = null,
entriesKey = "revanced_spoof_app_version_target_legacy_entries",
entryValuesKey = "revanced_spoof_app_version_target_legacy_entry_values"
)
}
)
val insertIndex = spoofAppVersionFingerprint.patternMatch!!.startIndex + 1

View File

@@ -11,6 +11,7 @@ import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
import app.revanced.patches.youtube.misc.settings.settingsPatch
import app.revanced.util.indexOfFirstInstructionOrThrow
import app.revanced.util.indexOfFirstInstructionReversedOrThrow
import com.android.tools.smali.dexlib2.Opcode
private const val EXTENSION_CLASS_DESCRIPTOR =
@@ -105,7 +106,23 @@ val enableDebuggingPatch = bytecodePatch(
)
}
// There exists other experimental accessor methods for String, byte[], and wrappers for obfuscated classes,
// but currently none of those are hooked.
experimentalStringFeatureFlagFingerprint.match(
experimentalFeatureFlagParentFingerprint.originalClassDef
).method.apply {
val insertIndex = indexOfFirstInstructionReversedOrThrow(Opcode.MOVE_RESULT_OBJECT)
addInstructions(
insertIndex,
"""
move-result-object v0
invoke-static { v0, p1, p2, p3 }, $EXTENSION_CLASS_DESCRIPTOR->isStringFeatureFlagEnabled(Ljava/lang/String;JLjava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
"""
)
}
// There exists other experimental accessor methods for byte[]
// and wrappers for obfuscated classes, but currently none of those are hooked.
}
}

View File

@@ -28,3 +28,9 @@ internal val experimentalLongFeatureFlagFingerprint = fingerprint {
parameters("J", "J")
}
internal val experimentalStringFeatureFlagFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("Ljava/lang/String;")
parameters("J", "Ljava/lang/String;")
}

View File

@@ -47,10 +47,17 @@ internal val controlsOverlayVisibilityFingerprint = fingerprint {
parameters("Z", "Z")
}
internal val playerControlsExploderFeatureFlagFingerprint = fingerprint {
internal val playerBottomControlsExploderFeatureFlagFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("Z")
parameters()
literal { 45643739L }
}
internal val playerTopControlsExperimentalLayoutFeatureFlagFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("I")
parameters()
literal { 45629424L }
}

View File

@@ -1,6 +1,7 @@
package app.revanced.patches.youtube.misc.playercontrols
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.patch.PatchException
import app.revanced.patcher.patch.bytecodePatch
@@ -10,6 +11,7 @@ import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
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.youtube.misc.playservice.is_19_25_or_greater
import app.revanced.patches.youtube.misc.playservice.is_19_35_or_greater
import app.revanced.util.*
import com.android.tools.smali.dexlib2.Opcode
@@ -263,12 +265,36 @@ val playerControlsPatch = bytecodePatch(
visibilityImmediateMethod = playerControlsExtensionHookFingerprint.method
// A/B test for a slightly different overlay controls,
// A/B test for a slightly different bottom overlay controls,
// that uses layout file youtube_video_exploder_controls_bottom_ui_container.xml
// The change to support this is simple and only requires adding buttons to both layout files,
// but for now force this different layout off since it's still an experimental test.
if (is_19_35_or_greater) {
playerControlsExploderFeatureFlagFingerprint.method.returnEarly()
playerBottomControlsExploderFeatureFlagFingerprint.method.returnEarly()
}
// A/B test of new top overlay controls. Two different layouts can be used:
// youtube_cf_navigation_improvement_controls_layout.xml
// youtube_cf_minimal_impact_controls_layout.xml
//
// Visually there is no noticeable difference between either of these compared to the default.
// There is additional logic that is active when youtube_cf_navigation_improvement_controls_layout
// is active, but what it does is not entirely clear.
//
// For now force this a/b feature off as it breaks the top player buttons.
if (is_19_25_or_greater) {
playerTopControlsExperimentalLayoutFeatureFlagFingerprint.method.apply {
val index = indexOfFirstInstructionOrThrow(Opcode.MOVE_RESULT_OBJECT)
val register = getInstruction<OneRegisterInstruction>(index).registerA
addInstructions(
index + 1,
"""
invoke-static { v$register }, $EXTENSION_CLASS_DESCRIPTOR->getPlayerTopControlsLayoutResourceName(Ljava/lang/String;)Ljava/lang/String;
move-result-object v$register
"""
)
}
}
}
}

View File

@@ -9,7 +9,7 @@ import app.revanced.patches.youtube.video.speed.remember.rememberPlaybackSpeedPa
val playbackSpeedPatch = bytecodePatch(
name = "Playback speed",
description = "Adds options to customize available playback speeds, remember the last playback speed selected " +
"and show a speed dialog button to the video player.",
"and show a speed dialog button in the video player.",
) {
dependsOn(
playbackSpeedButtonPatch,

View File

@@ -61,10 +61,10 @@ internal val rememberPlaybackSpeedPatch = bytecodePatch {
invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->getPlaybackSpeedOverride()F
move-result v0
# Check if the playback speed is not 1.0x.
const/high16 v1, 1.0f
# Check if the playback speed is not auto (-2.0f)
const/4 v1, 0x0
cmpg-float v1, v0, v1
if-eqz v1, :do_not_override
if-lez v1, :do_not_override
# Get the instance of the class which has the container class field below.
iget-object v1, p0, $onItemClickListenerClassFieldReference

View File

@@ -309,6 +309,17 @@ fun Method.indexOfFirstInstructionReversed(startIndex: Int? = null, filter: Inst
return instructions.indexOfLast(filter)
}
/**
* Get the index of matching instruction,
* starting from the end of the method and searching down.
*
* @return -1 if the instruction is not found.
*/
fun Method.indexOfFirstInstructionReversed(targetOpcode: Opcode): Int =
indexOfFirstInstructionReversed {
opcode == targetOpcode
}
/**
* Get the index of matching instruction,
* starting from and [startIndex] and searching down.
@@ -322,6 +333,16 @@ fun Method.indexOfFirstInstructionReversedOrThrow(startIndex: Int? = null, targe
opcode == targetOpcode
}
/**
* Get the index of matching instruction,
* starting from the end of the method and searching down.
*
* @return -1 if the instruction is not found.
*/
fun Method.indexOfFirstInstructionReversedOrThrow(targetOpcode: Opcode): Int =
indexOfFirstInstructionReversedOrThrow {
opcode == targetOpcode
}
/**
* Get the index of matching instruction,
* starting from and [startIndex] and searching down.

View File

@@ -962,11 +962,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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">الهدف من تغيير إصدار التطبيق</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - استعادة أيقونات لاعب الاختصار القديمة</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - استعادة RYD على Shorts بوضع التخفي</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - استعادة سرعة الفيديو الواسعة &amp; قائمة الجودة</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - استعادة علامة تبويب المكتبة</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - استعادة رف قائمة التشغيل القديم</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - استعادة RYD على Shorts بوضع التخفي</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - استعادة سرعة الفيديو الواسعة &amp; قائمة الجودة</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - استعادة علامة تبويب المكتبة</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - استعادة رف قائمة التشغيل القديم</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">تعيين صفحة البداية</string>

View File

@@ -963,10 +963,10 @@ This is because Crowdin requires temporarily flattening this file and removing t
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">Saxta tətbiq versiyası hədəfi</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Shorts gizli rejimində RYD-ni bərpa et</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Geniş video sürəti &amp; keyfiyyət menyusunu bərpa et</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Kitabxana panelini bərpa et</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Köhnə pleylist bölməsin bərpa et</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Shorts gizli rejimində RYD-ni bərpa et</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Geniş video sürəti &amp; keyfiyyət menyusunu bərpa et</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Kitabxana panelini bərpa et</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Köhnə pleylist bölməsin bərpa et</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Başlanğıc səhifəsini tənzimlə</string>

View File

@@ -882,10 +882,10 @@ This is because Crowdin requires temporarily flattening this file and removing t
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">Падробка мэтавай версіі праграмы</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Аднаўленне RYD на Shorts у рэжыме інкогніта</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Аднавіць хуткасць шырокага відэа &amp; якаснае меню</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Аднаўленне ўкладкі бібліятэкі</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Аднаўленне старой паліцы плэйлістоў</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Аднаўленне RYD на Shorts у рэжыме інкогніта</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Аднавіць хуткасць шырокага відэа &amp; якаснае меню</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Аднаўленне ўкладкі бібліятэкі</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Аднаўленне старой паліцы плэйлістоў</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Усталяваць стартавую старонку</string>

View File

@@ -86,6 +86,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_settings_screen_12_video_title">Видео</string>
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
<string name="revanced_shorts_disable_background_playback_title">Възпроизвеждане на Shorts в фонов режим</string>
<string name="revanced_shorts_disable_background_playback_summary_on">Изключено</string>
<string name="revanced_shorts_disable_background_playback_summary_off">Включено</string>
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
<string name="revanced_debug_screen_title">Отстраняване на грешки</string>
@@ -326,6 +329,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_products_banner_title">Скриване на банера за показване на продукти</string>
<string name="revanced_hide_products_banner_summary_on">Банерът е скрит</string>
<string name="revanced_hide_products_banner_summary_off">Банерът е показан</string>
<string name="revanced_hide_player_store_shelf_title">Скриване на рафта за пазаруване</string>
<string name="revanced_hide_player_store_shelf_summary_on">Рафта за пазаруване е скрит</string>
<string name="revanced_hide_player_store_shelf_summary_off">Рафта за пазаруване се показва</string>
<string name="revanced_hide_shopping_links_title">Скриване на връзките за пазаруване в описанието на видеоклипа</string>
<string name="revanced_hide_shopping_links_summary_on">Връзките за пазаруване са скрити</string>
<string name="revanced_hide_shopping_links_summary_off">Връзките за пазаруване са показани</string>
@@ -512,6 +518,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_flyout_ambient_mode_title">Подсветка около видеото</string>
<string name="revanced_hide_player_flyout_ambient_mode_summary_on">Менюто за подсветка около видеото е скрито</string>
<string name="revanced_hide_player_flyout_ambient_mode_summary_off">Менюто за подсветка около видеото се показва</string>
<string name="revanced_hide_player_flyout_stable_volume_title">Меню за постоянна сила на звука</string>
<string name="revanced_hide_player_flyout_stable_volume_summary_off">Постоянно ниво на звука се показва</string>
<string name="revanced_hide_player_flyout_stable_volume_summary_on">Постоянно ниво на звука е скрито</string>
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
@@ -540,6 +547,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_flyout_watch_in_vr_summary_on">Менюто за гледане в VR е скрито</string>
<string name="revanced_hide_player_flyout_watch_in_vr_summary_off">Менюто за гледане в VR се показва</string>
<string name="revanced_hide_player_flyout_video_quality_footer_title">Скриване на футъра на менюто за качество на видеото</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_on">Долният колонтитул на менюто за качество на видеото е скрит</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">Долният колонтитул на менюто за качество на видеото се показва</string>
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<string name="revanced_hide_player_previous_next_buttons_title">Бутони за Предишно &amp; Следващо видео</string>
@@ -633,6 +642,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_shorts_green_screen_button_title">Бутон \"Зелен екран\"</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Бутон \"Зелен екран\" е скрит</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Бутон \"Зелен екран\" се показва</string>
<string name="revanced_hide_shorts_hashtag_button_title">Скриване на бутона за хаштаг</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Бутона за хаштаг е скрит</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Бутона за хаштаг се показва</string>
<string name="revanced_hide_shorts_search_suggestions_title">Скриване на предложенията за търсене</string>
<string name="revanced_hide_shorts_search_suggestions_summary_on">Предложенията за търсене са скрити</string>
<string name="revanced_hide_shorts_search_suggestions_summary_off">Предложенията за търсене се показват</string>
@@ -751,6 +763,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_wide_searchbar_summary_off">Широката лента за търсене е изключена</string>
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
<string name="revanced_seekbar_thumbnails_high_quality_title">Активиране на висококачествени миниатюри</string>
<string name="revanced_seekbar_thumbnails_high_quality_summary_on">Миниатюри с високо качество в лентата на възпроизвеждане</string>
<string name="revanced_seekbar_thumbnails_high_quality_summary_off">Миниатюри с средно качество в лентата на възпроизвеждане</string>
<string name="revanced_seekbar_thumbnails_high_quality_legacy_summary_on">Миниатюри с високо качество в лентата на прогреса на цял екран</string>
<string name="revanced_seekbar_thumbnails_high_quality_legacy_summary_off">Миниатюри със средно качество в лентата на прогреса на цял екран</string>
<string name="revanced_seekbar_thumbnails_high_quality_dialog_message">Това също така ще възстанови миниатюри на потоци на живо, които нямат миниатюри на лентата на прогреса.\n\nМиниизображенията на лентата на прогреса ще използват същото качество като текущия видеоклип.\n\nТази функция работи най-добре с качество на видеото 720p или по-ниско и когато използвате много бързо интернет връзка.</string>
<string name="revanced_restore_old_seekbar_thumbnails_title">Стари миниатюри на времевата линия</string>
<string name="revanced_restore_old_seekbar_thumbnails_summary_on">Над лентата за възпроизвеждане се появяват миниатюри</string>
<string name="revanced_restore_old_seekbar_thumbnails_summary_off">Миниатюрите се показват в режим на цял екран</string>
@@ -945,10 +963,10 @@ This is because Crowdin requires temporarily flattening this file and removing t
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">Подлъгване за версията на</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Възстановете RYD в режим „инкогнито“ на Shorts</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Възстановяване на видео скорост &amp; в менюто за качество</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Възстановяване на таб \"Библиотека\"</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Връщане на секцията с плейлиста към стария стил</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Възстановете RYD в режим „инкогнито“ на Shorts</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Възстановяване на видео скорост &amp; в менюто за качество</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Възстановяване на таб \"Библиотека\"</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Връщане на секцията с плейлиста към стария стил</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Задай начална страница</string>
@@ -974,6 +992,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_disable_resuming_shorts_player_summary_off">Shorts плейъра при стартиране на приложението се показва</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">Автоматично пускане Shorts</string>
<string name="revanced_shorts_autoplay_summary_on">Shorts ще се пускат автоматично</string>
<string name="revanced_shorts_autoplay_summary_off">Shorts ще се повторят</string>
<string name="revanced_shorts_autoplay_background_title">Автоматично пускане на Shorts във фонов режим</string>
<string name="revanced_shorts_autoplay_background_summary_on">Shorts ще се възпроизвеждат автоматично един след друг във фонов режим</string>
<string name="revanced_shorts_autoplay_background_summary_off">Shorts ще се повтори във фонов режим</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Включи режим за таблет</string>
@@ -991,7 +1015,23 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_type_entry_4">Модерен 1</string>
<string name="revanced_miniplayer_type_entry_5">Модерен 2</string>
<string name="revanced_miniplayer_type_entry_6">Модерен 3</string>
<string name="revanced_miniplayer_rounded_corners_title">Активирайте заоблени ъгли</string>
<string name="revanced_miniplayer_rounded_corners_summary_on">Ъглите са заоблени</string>
<string name="revanced_miniplayer_rounded_corners_summary_off">Ъглите са нормални</string>
<string name="revanced_miniplayer_double_tap_action_title">Активирайте двойното докосване и щипване за преоразмеряване</string>
<string name="revanced_miniplayer_double_tap_action_summary_on">Действието с двойно докосване и щипване за преоразмеряване е активирано\n\n• Докоснете двукратно, за да увеличите размера на миниплейъра\n• Докоснете два пъти отново, за да възстановите оригиналния размер</string>
<string name="revanced_miniplayer_double_tap_action_summary_off">Двойно докосване и щипване за преоразмеряване е деактивирано</string>
<string name="revanced_miniplayer_drag_and_drop_title">Разрешете плъзгане и местене</string>
<string name="revanced_miniplayer_drag_and_drop_summary_on">Плъзгане и местенето е активирано\n\nМиниплейърът може да се плъзга до всеки ъгъл на екрана</string>
<string name="revanced_miniplayer_drag_and_drop_summary_off">Плъзгането и преместването е деактивирано</string>
<string name="revanced_miniplayer_horizontal_drag_title">Активиране на хоризонтално плъзгане</string>
<string name="revanced_miniplayer_horizontal_drag_summary_on">Жестът за хоризонтално плъзгане е активиран\n\nМиниплейърът може да се плъзга извън екрана наляво или надясно</string>
<string name="revanced_miniplayer_horizontal_drag_summary_off">Жестът за хоризонтално плъзгане е деактивиран</string>
<string name="revanced_miniplayer_hide_expand_close_title">Скриване на бутона за затваряне</string>
<string name="revanced_miniplayer_hide_expand_close_summary_on">Бутонът за затваряне е скрит</string>
<string name="revanced_miniplayer_hide_expand_close_summary_off">Показан е бутон за затваряне</string>
<string name="revanced_miniplayer_hide_expand_close_legacy_title">Бутони за разширяване и свиване на екрана</string>
<string name="revanced_miniplayer_hide_expand_close_legacy_summary_on">Бутоните са скрити\n\nПлъзнете за разгъване или затваряне</string>
<string name="revanced_miniplayer_hide_expand_close_legacy_summary_off">Бутони за разширяване и свиване на екрана са видими</string>
<string name="revanced_miniplayer_hide_subtext_title">Екранни текстове, етикети</string>
<string name="revanced_miniplayer_hide_subtext_summary_on">Скрити</string>
@@ -1001,6 +1041,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_hide_rewind_forward_summary_off">Бутони за напред и назад са показани</string>
<string name="revanced_miniplayer_width_dip_title">Първоначален размер</string>
<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_invalid_toast">Прозрачността на менюто трябва да бъде между 0-100</string>
@@ -1016,6 +1057,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_seekbar_custom_color_summary_off">Показва се оригиналния цвят на лентата за напредък</string>
<string name="revanced_seekbar_custom_color_value_title">Персонализиран цвят на лентата за напредък</string>
<string name="revanced_seekbar_custom_color_value_summary">Цветове на лентата за напредък</string>
<string name="revanced_seekbar_custom_color_invalid">Невалидна стойност за цвят на лентата на прогреса</string>
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
<string name="revanced_bypass_image_region_restrictions_title">Прескочете забраната за зареждане на изображение</string>
@@ -1119,6 +1161,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<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>
<string name="revanced_custom_speed_menu_summary_on">Менюто за потребителска скорост се показва</string>
<string name="revanced_custom_speed_menu_summary_off">Менюто за потребителска скорост не се показва</string>
<string name="revanced_custom_playback_speeds_title">Персонализирани скорости на възпроизвеждане</string>
<string name="revanced_custom_playback_speeds_summary">Добавете или променете скоростa на възпроизвеждане</string>
<string name="revanced_custom_playback_speeds_invalid">Персоналната скорост трябва да е по-малка от %s. Използване на стойности по подразбиране.</string>

View File

@@ -874,10 +874,10 @@ This is because Crowdin requires temporarily flattening this file and removing t
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">স্পুফ অ্যাপ সংস্করণ লক্ষ্য</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - ছদ্মবেশি মোডে RYD পুনরুদ্ধার করে</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - প্রশ্বস্ত ভিডিও স্পিড এবং গুণমান মেনু পুনরুদ্ধার করে</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - লাইব্রেরি ট্যাপ পুনরুদ্ধার করে</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - পুরোনো প্লেলিস্ট শেলফ পুনরুদ্ধার করে</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - ছদ্মবেশি মোডে RYD পুনরুদ্ধার করে</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - প্রশ্বস্ত ভিডিও স্পিড এবং গুণমান মেনু পুনরুদ্ধার করে</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - লাইব্রেরি ট্যাপ পুনরুদ্ধার করে</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - পুরোনো প্লেলিস্ট শেলফ পুনরুদ্ধার করে</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">শুরুর পৃষ্ঠা সেট করুন</string>

View File

@@ -963,11 +963,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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">Cíl pro spontánní verzi aplikace</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - Obnovit staré ikony hráčů</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Obnovení RYD v krátkém anonymním režimu</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Obnovení široké rychlosti videa &amp; kvalitní menu</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Obnovení záložky knihovny</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Obnovit starou skladbu</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Obnovení RYD v krátkém anonymním režimu</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Obnovení široké rychlosti videa &amp; kvalitní menu</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Obnovení záložky knihovny</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Obnovit starou skladbu</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Nastavit úvodní stránku</string>

View File

@@ -952,11 +952,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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">18.38.44 - Gendan gamle Shorts player ikoner</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Gendan RYD på Shorts inkognitotilstand</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Gendan bred video hastighed &amp; kvalitet menu</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Genopret biblioteks fane</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Gendan gammel spilleliste hylde</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Gendan RYD på Shorts inkognitotilstand</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Gendan bred video hastighed &amp; kvalitet menu</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Genopret biblioteks fane</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Gendan gammel spilleliste hylde</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Indstil startside</string>

View File

@@ -963,11 +963,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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-Versionsziel</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - Alte Shorts Spielersymbole wiederherstellen</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - RYD auf Shorts Inkognito-Modus wiederherstellen</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Wiederherstellen der breiten Videogeschwindigkeit &amp; Qualitätsmenü</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Bibliotheks-Tab wiederherstellen</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Alte Wiedergabeliste wiederherstellen</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - RYD auf Shorts Inkognito-Modus wiederherstellen</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Wiederherstellen der breiten Videogeschwindigkeit &amp; Qualitätsmenü</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Bibliotheks-Tab wiederherstellen</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Alte Wiedergabeliste wiederherstellen</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Startseite festlegen</string>

View File

@@ -962,11 +962,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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">Έκδοση τροποποίησης της εφαρμογής</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - Επαναφορά εικονιδίων παλαιών σορτς</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Επαναφορά λειτουργικότητας του RYD στα Shorts σε λειτουργία ανώνυμης περιήγησης</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Επαναφορά ευρέος μενού ταχύτητας &amp; ποιότητας βίντεο</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Επαναφορά της καρτέλας βιβλιοθήκης</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Επαναφορά ενότητας λίστας αναπαραγωγής παλιού στυλ</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Επαναφορά λειτουργικότητας του RYD στα Shorts σε λειτουργία ανώνυμης περιήγησης</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Επαναφορά ευρέος μενού ταχύτητας &amp; ποιότητας βίντεο</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Επαναφορά της καρτέλας βιβλιοθήκης</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Επαναφορά ενότητας λίστας αναπαραγωγής παλιού στυλ</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Ορισμός αρχικής σελίδας</string>

View File

@@ -962,11 +962,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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">Destino de versión de la aplicación Spoof</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - Restaurar los iconos antiguos del jugador corto</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Restaurar RYD en Shorts de modo incógnito</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Restaurar la velocidad de vídeo ancha &amp; menú de calidad</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Restaurar pestaña de biblioteca</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Restaurar el estante viejo de lista de reproducción</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Restaurar RYD en Shorts de modo incógnito</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Restaurar la velocidad de vídeo ancha &amp; menú de calidad</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Restaurar pestaña de biblioteca</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Restaurar el estante viejo de lista de reproducción</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Establecer página de inicio</string>

View File

@@ -964,11 +964,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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">Naamioitava kohdeversio</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - Vanhojen Shorts-pelaajan kuvakkeiden palauttaminen</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Palauita RYD Shorts-videoissa incognito-tilassa</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Palauta laaja videonopeus- ja laatuvalikko</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Palauta kirjasto-välilehti</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Palauta vanha soittolistahylly</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Palauita RYD Shorts-videoissa incognito-tilassa</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Palauta laaja videonopeus- ja laatuvalikko</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Palauta kirjasto-välilehti</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Palauta vanha soittolistahylly</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Aseta aloitussivu</string>

View File

@@ -877,10 +877,10 @@ This is because Crowdin requires temporarily flattening this file and removing t
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">Target na bersyon ng Spoof app</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Ibalik ang RYD sa incognito mode ng Shorts</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Ibalik ang malawak na bilis ng video &amp; kalidad na menu</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Ibalik ang tab ng library</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Ibalik ang lumang istante ng playlist</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Ibalik ang RYD sa incognito mode ng Shorts</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Ibalik ang malawak na bilis ng video &amp; kalidad na menu</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Ibalik ang tab ng library</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Ibalik ang lumang istante ng playlist</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Itakda ang panimulang pahina</string>

View File

@@ -963,11 +963,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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">Falsifier la cible de version de l\'application</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - Restaurer les anciennes icônes des joueurs Shorts</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Restaurer RYD en mode incognito Shorts</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Restaurer une grande vitesse vidéo &amp; menu qualité</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Restaurer l\'onglet bibliothèque</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Restaurer l\'ancienne tablette de la liste de lecture</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Restaurer RYD en mode incognito Shorts</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Restaurer une grande vitesse vidéo &amp; menu qualité</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Restaurer l\'onglet bibliothèque</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Restaurer l\'ancienne tablette de la liste de lecture</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Définir la page de démarrage</string>

View File

@@ -963,10 +963,10 @@ This is because Crowdin requires temporarily flattening this file and removing t
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">Sprioc leagan aip spoof</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Athchóirigh RYD ar mhodh incognito Shorts</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Athchóirigh luas leathan físe &amp; roghchlár cáilíochta</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Athchóirigh cluaisín leabharlainne</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Athchóirigh sean-seilf seinmliostaí</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Athchóirigh RYD ar mhodh incognito Shorts</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Athchóirigh luas leathan físe &amp; roghchlár cáilíochta</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Athchóirigh cluaisín leabharlainne</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Athchóirigh sean-seilf seinmliostaí</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Socraigh leathanach tosaigh</string>

View File

@@ -963,10 +963,10 @@ This is because Crowdin requires temporarily flattening this file and removing t
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">Hamisított alkalmazásverzió célja</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - RYD visszaállítása Shorts inkognitó módban</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Széles videósebesség és minőség menü visszaállítása</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Könyvtár lap visszaállítása</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Régi lejátszási lista polc visszállítása</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - RYD visszaállítása Shorts inkognitó módban</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Széles videósebesség és minőség menü visszaállítása</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Könyvtár lap visszaállítása</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Régi lejátszási lista polc visszállítása</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Kezdőlap beállítása</string>

View File

@@ -963,10 +963,10 @@ This is because Crowdin requires temporarily flattening this file and removing t
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">Target versi app yang dipalsukan</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Pulihkan RYD pada mode penyamaran Shorts</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Pulihkan menu kecepatan &amp; kualitas video lebar</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Pulihkan tab pustaka</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Pulihkan rak daftar putar lama</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Pulihkan RYD pada mode penyamaran Shorts</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Pulihkan menu kecepatan &amp; kualitas video lebar</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Pulihkan tab pustaka</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Pulihkan rak daftar putar lama</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Tetapkan halaman awal</string>

View File

@@ -962,11 +962,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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 destinazione versione app</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - Ripristinare vecchie icone del giocatore Shorts</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Ripristina RYD su modalità incognito Shorts</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Ripristina velocità video larga &amp; menu qualità</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Ripristina scheda libreria</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Ripristina vecchi ripiani playlist</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Ripristina RYD su modalità incognito Shorts</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Ripristina velocità video larga &amp; menu qualità</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Ripristina scheda libreria</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Ripristina vecchi ripiani playlist</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Imposta pagina iniziale</string>

View File

@@ -947,11 +947,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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">アプリバージョンのターゲットを偽装する</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - 古いショーツプレーヤーアイコンを復元する</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - シークレットモード使用時のShortsのRYDを復元</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - ワイドビデオスピード &amp; クオリティメニューを復元</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - ライブラリタブを復元</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - 古いプレイリストシェルフを復元する</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - シークレットモード使用時のShortsのRYDを復元</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - ワイドビデオスピード &amp; クオリティメニューを復元</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - ライブラリタブを復元</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - 古いプレイリストシェルフを復元する</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">開始ページを設定</string>

View File

@@ -964,10 +964,10 @@ This is because Crowdin requires temporarily flattening this file and removing t
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">변경할 앱 버전 설정</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - 시크릿 모드에서 Shorts RYD를 복원합니다</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - 넓은 동영상 재생 속도 &amp; 화질 메뉴를 복원합니다</string>
<string name="revanced_spoof_app_version_target_entry_3">16.09.39 - 이전 보관함 탭을 복원합니다 (내 페이지 탭을 비활성화합니다)</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - 이전 재생목록 선반으로 복원합니다</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - 시크릿 모드에서 Shorts RYD를 복원합니다</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - 넓은 동영상 재생 속도 &amp; 화질 메뉴를 복원합니다</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">16.09.39 - 이전 보관함 탭을 복원합니다 (내 페이지 탭을 비활성화합니다)</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - 이전 재생목록 선반으로 복원합니다</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">앱 시작 페이지 변경하기</string>

View File

@@ -941,11 +941,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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-versjonen mål</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - Gjenopprett gamle kort spiller-ikoner</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Gjenopprett RYD på Shorts incognito-modus</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Gjenopprette bred videokastighet &amp; kvalitetsmeny</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Gjenopprett bibliotek-fane</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Gjenopprett gammel spilleliste</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Gjenopprett RYD på Shorts incognito-modus</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Gjenopprette bred videokastighet &amp; kvalitetsmeny</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Gjenopprett bibliotek-fane</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Gjenopprett gammel spilleliste</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Angi startside</string>

View File

@@ -954,11 +954,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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 versie doel</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - Herstel oude knipaardenspelerpictogrammen</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Herstel RYD op incognito modus</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Herstel brede videosnelheid &amp; kwaliteitsmenu</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Tabblad bibliotheek herstellen</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - oude afspeellijst herstellen</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Herstel RYD op incognito modus</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Herstel brede videosnelheid &amp; kwaliteitsmenu</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Tabblad bibliotheek herstellen</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - oude afspeellijst herstellen</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Startpagina instellen</string>

View File

@@ -960,11 +960,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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">Docelowa zespoofowana wersja aplikacji</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - Przywróć stare ikony gracza Shorts</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Przywróć RYD (Return YouTube Dislike) w trybie incognito</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Przywracanie szerokiej prędkości wideo &amp; menu jakości</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Przywróć kartę bibliotek</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Przywróć starą półkę na liście odtwarzania</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Przywróć RYD (Return YouTube Dislike) w trybie incognito</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Przywracanie szerokiej prędkości wideo &amp; menu jakości</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Przywróć kartę bibliotek</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Przywróć starą półkę na liście odtwarzania</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Ustaw stronę startową</string>

View File

@@ -589,10 +589,10 @@ This is because Crowdin requires temporarily flattening this file and removing t
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<string name="revanced_hide_seekbar_title">Ocultar barra de busca no reprodutor de vídeo</string>
<string name="revanced_hide_seekbar_summary_on">Barra de busca no reprodutor de vídeo está oculto</string>
<string name="revanced_hide_seekbar_summary_off">Barra de busca no reprodutor de vídeo não está oculto</string>
<string name="revanced_hide_seekbar_thumbnail_title">Ocultar barra de busca nas miniaturas do vídeo</string>
<string name="revanced_hide_seekbar_thumbnail_summary_on">Barra de busca nas miniaturas estão oculta</string>
<string name="revanced_hide_seekbar_thumbnail_summary_off">Barra de busca nas miniaturas não estão oculta</string>
<string name="revanced_hide_seekbar_summary_off">Barra de busca no reprodutor de vídeo é mostrada</string>
<string name="revanced_hide_seekbar_thumbnail_title">Ocultar barra de busca nas miniaturas de vídeo</string>
<string name="revanced_hide_seekbar_thumbnail_summary_on">A barra de busca nas miniaturas está oculta</string>
<string name="revanced_hide_seekbar_thumbnail_summary_off">Barra de busca nas miniaturas é mostrada</string>
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<string name="revanced_shorts_player_screen_title">Reprodutor do Shorts</string>
@@ -637,6 +637,15 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_shorts_use_template_button_title">Ocultar botão Usar template</string>
<string name="revanced_hide_shorts_use_template_button_summary_on">O botão Usar template está oculto</string>
<string name="revanced_hide_shorts_use_template_button_summary_off">O botão Usar template será exibido</string>
<string name="revanced_hide_shorts_upcoming_button_title">Ocultar botão \"próximo\"</string>
<string name="revanced_hide_shorts_upcoming_button_summary_on">O botão \"próximo\" está oculto</string>
<string name="revanced_hide_shorts_upcoming_button_summary_off">O botão \"próximo\" é mostrado</string>
<string name="revanced_hide_shorts_green_screen_button_title">Ocultar botão de tela verde</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">O botão de tela verde está oculto</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">O botão de tela verde será exibido</string>
<string name="revanced_hide_shorts_hashtag_button_title">Ocultar botão hashtag</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">O botão hashtag está oculto</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Botão hashtag é mostrado</string>
<string name="revanced_hide_shorts_search_suggestions_title">Ocultar sugestões de busca</string>
<string name="revanced_hide_shorts_search_suggestions_summary_on">Sugestões de pesquisa estão ocultas</string>
<string name="revanced_hide_shorts_search_suggestions_summary_off">Sugestões de pesquisa são mostradas</string>
@@ -755,9 +764,15 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_wide_searchbar_summary_off">Barra de busca ampla está desativada</string>
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
<string name="revanced_seekbar_thumbnails_high_quality_title">Ativar miniaturas de alta qualidade</string>
<string name="revanced_seekbar_thumbnails_high_quality_summary_on">As miniaturas na barra de busca são de qualidade alta</string>
<string name="revanced_seekbar_thumbnails_high_quality_summary_off">As miniaturas na barra de busca são de qualidade média</string>
<string name="revanced_seekbar_thumbnails_high_quality_legacy_summary_on">As miniaturas da barra de busca em tela cheia são de alta qualidade</string>
<string name="revanced_seekbar_thumbnails_high_quality_legacy_summary_off">As miniaturas da barra de busca em tela cheia são de qualidade média</string>
<string name="revanced_seekbar_thumbnails_high_quality_dialog_message">Isso também vai restaurar miniaturas em transmissões ao vivo que não têm miniaturas da barra de busca.\n\nAs miniaturas da barra de busca vão usar a mesma qualidade do vídeo atual.\\n\nEste recurso funciona melhor com qualidade de vídeo de 720p ou inferior e quando usar uma conexão de internet muito rápida.</string>
<string name="revanced_restore_old_seekbar_thumbnails_title">Restaurar as miniaturas antigas da barra de busca</string>
<string name="revanced_restore_old_seekbar_thumbnails_summary_on">As miniaturas aparecerão acima da barra de busca</string>
<string name="revanced_restore_old_seekbar_thumbnails_summary_off">As miniaturas na barra de busca aparecerão em tela cheia</string>
<string name="revanced_restore_old_seekbar_thumbnails_summary_on">As miniaturas vão aparecer acima da barra de busca</string>
<string name="revanced_restore_old_seekbar_thumbnails_summary_off">As miniaturas na barra de busca vão aparecer em tela cheia</string>
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<string name="revanced_sb_enable_sb">Ativar SponsorBlock</string>
@@ -949,20 +964,28 @@ This is because Crowdin requires temporarily flattening this file and removing t
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">Versão de spoofing alvo</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Restaurar RYD no modo Shorts ocultos</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Restaurar a velocidade de vídeo ampla &amp; menu de qualidade</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Restaurar aba biblioteca</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Restaurar prateleira de lista de reprodução antiga</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Restaurar RYD no modo Shorts ocultos</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Restaurar a velocidade de vídeo ampla &amp; menu de qualidade</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Restaurar aba biblioteca</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Restaurar prateleira de lista de reprodução antiga</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Definir página inicial</string>
<string name="revanced_change_start_page_entry_default">Padrão</string>
<string name="revanced_change_start_page_entry_browse">Explorar canais</string>
<string name="revanced_change_start_page_entry_explore">Explorar</string>
<string name="revanced_change_start_page_entry_gaming">Jogos</string>
<string name="revanced_change_start_page_entry_history">Histórico</string>
<string name="revanced_change_start_page_entry_library">Biblioteca</string>
<string name="revanced_change_start_page_entry_liked_videos">Videos curtidos</string>
<string name="revanced_change_start_page_entry_live">Ao Vivo</string>
<string name="revanced_change_start_page_entry_movies">Filmes</string>
<string name="revanced_change_start_page_entry_music">Música</string>
<string name="revanced_change_start_page_entry_search">Procurar</string>
<string name="revanced_change_start_page_entry_sports">Esportes</string>
<string name="revanced_change_start_page_entry_subscriptions">Inscrições</string>
<string name="revanced_change_start_page_entry_trending">Em alta</string>
<string name="revanced_change_start_page_entry_watch_later">Assistir mais tarde</string>
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
<string name="revanced_disable_resuming_shorts_player_title">Desativar continuar a reproduzir Shorts</string>
@@ -970,6 +993,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_disable_resuming_shorts_player_summary_off">Shorts irá continuar reproduzindo ao iniciar o aplicativo</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
<string name="revanced_shorts_autoplay_title">Reprodução automática nos Shorts</string>
<string name="revanced_shorts_autoplay_summary_on">Os Shorts vão ser reproduzidos automaticamente</string>
<string name="revanced_shorts_autoplay_summary_off">Os Shorts vão repetir</string>
<string name="revanced_shorts_autoplay_background_title">Reprodução automática nos Shorts em segundo plano</string>
<string name="revanced_shorts_autoplay_background_summary_on">A reprodução em segundo plano dos Shorts vai ser reproduzidas automaticamente</string>
<string name="revanced_shorts_autoplay_background_summary_off">A reprodução em segundo plano dos Shorts vai ser reproduzidas automaticamente</string>
</patch>
<patch id="layout.tablet.enableTabletLayoutPatch">
<string name="revanced_tablet_layout_title">Ativar layout de tablet</string>
@@ -987,12 +1016,33 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_type_entry_4">Moderno 1</string>
<string name="revanced_miniplayer_type_entry_5">Moderno 2</string>
<string name="revanced_miniplayer_type_entry_6">Moderno 3</string>
<string name="revanced_miniplayer_rounded_corners_title">Ativar cantos arredondados</string>
<string name="revanced_miniplayer_rounded_corners_summary_on">Os cantos são arredondados</string>
<string name="revanced_miniplayer_rounded_corners_summary_off">Os cantos são quadrados</string>
<string name="revanced_miniplayer_double_tap_action_title">Ativar toque duplo e pinçar para redimensionar</string>
<string name="revanced_miniplayer_double_tap_action_summary_on">Toque duplo e pinça para redimensionar está ativado\n\n• Toque duplo para aumentar o tamanho do miniplayer\n• Toque duas vezes de novo para restaurar o tamanho original</string>
<string name="revanced_miniplayer_double_tap_action_summary_off">Toque duplo e pinçar para redimensionar está desativado</string>
<string name="revanced_miniplayer_drag_and_drop_title">Ativar arrastar e soltar</string>
<string name="revanced_miniplayer_drag_and_drop_summary_on">Arrastar e soltar é habilitado\n\nMiniplayer pode ser arrastado para qualquer canto da tela</string>
<string name="revanced_miniplayer_drag_and_drop_summary_off">Arrastar e soltar está desativado</string>
<string name="revanced_miniplayer_horizontal_drag_title">Ativar o gesto de arrastar horizontal</string>
<string name="revanced_miniplayer_horizontal_drag_summary_on">Gesto de arrastar horizontal habilitado\n\nO miniplayer pode ser arrastado para fora da tela para a esquerda ou direita</string>
<string name="revanced_miniplayer_horizontal_drag_summary_off">Gesto de arrastar horizontal desativado</string>
<string name="revanced_miniplayer_hide_expand_close_title">Ocultar botão fechar</string>
<string name="revanced_miniplayer_hide_expand_close_summary_on">O botão fechar está oculto</string>
<string name="revanced_miniplayer_hide_expand_close_summary_off">Botão fechar é mostrado</string>
<string name="revanced_miniplayer_hide_expand_close_legacy_title">Ocultar botões de expansão e fechar</string>
<string name="revanced_miniplayer_hide_expand_close_legacy_summary_on">Os botões são ocultos\n\nDeslize para expandir ou fechar</string>
<string name="revanced_miniplayer_hide_expand_close_legacy_summary_off">Os botões de expansão e fechar são mostrados</string>
<string name="revanced_miniplayer_hide_subtext_title">Ocultar subtextos</string>
<string name="revanced_miniplayer_hide_subtext_summary_on">Subtextos estão ocultos</string>
<string name="revanced_miniplayer_hide_subtext_summary_off">Subtextos são exibidos</string>
<string name="revanced_miniplayer_hide_rewind_forward_title">Ocultar botões pular para frente e para trás</string>
<string name="revanced_miniplayer_hide_rewind_forward_summary_on">Pular para frente e para trás estão escondidos</string>
<string name="revanced_miniplayer_hide_rewind_forward_summary_off">Pular para frente e para trás são mostrados</string>
<string name="revanced_miniplayer_width_dip_title">Tamanho inicial</string>
<string name="revanced_miniplayer_width_dip_summary">Tamanho inicial na tela, em pixels</string>
<string name="revanced_miniplayer_width_dip_invalid_toast">O tamanho do pixel deve estar entre %1$s e %2$s</string>
<string name="revanced_miniplayer_opacity_title">Opacidade de sobreposição</string>
<string name="revanced_miniplayer_opacity_summary">Valor de opacidade entre 0-100, onde 0 é transparente</string>
<string name="revanced_miniplayer_opacity_invalid_toast">Opacidade da sobreposição de miniplayer deve estar entre 0-100</string>
@@ -1004,10 +1054,10 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.theme.themeResourcePatch">
<string name="revanced_seekbar_custom_color_title">Ativar cor personalizada da barra de busca</string>
<string name="revanced_seekbar_custom_color_summary_on">Mostrar cor personalizada da barra de busca</string>
<string name="revanced_seekbar_custom_color_summary_off">Mostrar cor original 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>
<string name="revanced_seekbar_custom_color_value_title">Cor personalizada da barra de busca</string>
<string name="revanced_seekbar_custom_color_value_summary">Cor da barra de busca</string>
<string name="revanced_seekbar_custom_color_value_summary">A cor da barra de busca</string>
<string name="revanced_seekbar_custom_color_invalid">Valor de cor da barra de busca inválido</string>
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
@@ -1112,7 +1162,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_playback_speed_dialog_button_summary_off">Botão não está visível</string>
</patch>
<patch id="video.speed.custom.customPlaybackSpeedPatch">
<string name="revanced_custom_speed_menu_title">Menu de velocidade de reprodução personalizado</string>
<string name="revanced_custom_speed_menu_summary_on">O menu de velocidade personalizado é mostrado</string>
<string name="revanced_custom_speed_menu_summary_off">O menu de velocidade personalizado não é mostrado</string>
<string name="revanced_custom_playback_speeds_title">Velocidade de reprodução personalizada</string>
<string name="revanced_custom_playback_speeds_summary">Adicionar ou mudar as velocidades de reprodução personalizadas</string>
<string name="revanced_custom_playback_speeds_invalid">Velocidades personalizadas devem ser menores que %s. Usando valores padrão.</string>
<string name="revanced_custom_playback_speeds_parse_exception">Velocidade personalizada de reprodução inválida. Usando valores padrão.</string>
</patch>

View File

@@ -962,11 +962,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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">Destaque de versão do app</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - Restaurar ícones antigos de jogadores curtos</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Restaurar RYD em Modo Curto Incógnito</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Restaurar menu de qualidade de vídeo &amp;</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Restaurar aba da biblioteca</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Restaurar a pategoria de playlist antiga</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Restaurar RYD em Modo Curto Incógnito</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Restaurar menu de qualidade de vídeo &amp;</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Restaurar aba da biblioteca</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Restaurar a pategoria de playlist antiga</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Definir página inicial</string>

View File

@@ -961,11 +961,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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 target</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - Restaurează vechile pictograme de Jucător Scurt</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Restaurează RYD în modul incognito Shorts</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Restaurare viteză video mare &amp; meniu calitate</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Restaurare tab librărie</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Restaurați vechiul raft al listei de redare</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Restaurează RYD în modul incognito Shorts</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Restaurare viteză video mare &amp; meniu calitate</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Restaurare tab librărie</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Restaurați vechiul raft al listei de redare</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Setaţi pagina de start</string>

View File

@@ -963,11 +963,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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">Подмена версии приложения на</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - Восстановление старых шортов</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Восстановление Return Youtube Dislike в режиме инкогнито Shorts</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Восстановление расширенного меню скорости и качества видео</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Восстановление вкладки \"Библиотека\"</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Восстановление старой секции плейлистов</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Восстановление Return Youtube Dislike в режиме инкогнито Shorts</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Восстановление расширенного меню скорости и качества видео</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Восстановление вкладки \"Библиотека\"</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Восстановление старой секции плейлистов</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Начальная страница</string>

View File

@@ -886,10 +886,10 @@ This is because Crowdin requires temporarily flattening this file and removing t
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">Falošná cieľová verzia aplikácie</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Obnovenie režimu inkognito RYD na Shorts</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Obnovenie rýchlosti širokouhlého videa &amp; kvalitné menu</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Záložka Obnoviť knižnicu</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Obnovte starú poličku so zoznamom skladieb</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Obnovenie režimu inkognito RYD na Shorts</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Obnovenie rýchlosti širokouhlého videa &amp; kvalitné menu</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Záložka Obnoviť knižnicu</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Obnovte starú poličku so zoznamom skladieb</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Nastaviť úvodnú stránku</string>

View File

@@ -500,17 +500,17 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_flyout_title">Padajući meni</string>
<string name="revanced_hide_player_flyout_summary">Sakrijte ili prikažite predmete u padajućem meniju plejera</string>
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<string name="revanced_hide_player_flyout_captions_title">Sakrij dugme „Titl”</string>
<string name="revanced_hide_player_flyout_captions_title">Sakrij meni „Titl”</string>
<string name="revanced_hide_player_flyout_captions_summary_on">Meni „Titl” je skriven</string>
<string name="revanced_hide_player_flyout_captions_summary_off">Meni „Titl” je prikazan</string>
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<string name="revanced_hide_player_flyout_additional_settings_title">Sakrij dugme „Dodatna podešavanja”</string>
<string name="revanced_hide_player_flyout_additional_settings_title">Sakrij meni „Dodatna podešavanja”</string>
<string name="revanced_hide_player_flyout_additional_settings_summary_on">Meni „Dodatna podešavanja” je skriven</string>
<string name="revanced_hide_player_flyout_additional_settings_summary_off">Meni „Dodatna podešavanja” je prikazan</string>
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<string name="revanced_hide_player_flyout_sleep_timer_title">Sakrij tajmer za spavanje</string>
<string name="revanced_hide_player_flyout_sleep_timer_summary_on">Meni tajmera za spavanje je skriven</string>
<string name="revanced_hide_player_flyout_sleep_timer_summary_off">Meni tajmera za spavanje je prikazan</string>
<string name="revanced_hide_player_flyout_sleep_timer_title">Sakrij meni „Tajmer za spavanje</string>
<string name="revanced_hide_player_flyout_sleep_timer_summary_on">Meni „Tajmer za spavanje je skriven</string>
<string name="revanced_hide_player_flyout_sleep_timer_summary_off">Meni „Tajmer za spavanje je prikazan</string>
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<string name="revanced_hide_player_flyout_loop_video_title">Sakrij dugme „Ponavljaj video”</string>
<string name="revanced_hide_player_flyout_loop_video_summary_on">Dugme „Ponavljaj video” je skriveno</string>
@@ -527,7 +527,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_flyout_help_summary_on">Dugme „Pomoć i povratne informacije” je skriveno</string>
<string name="revanced_hide_player_flyout_help_summary_off">Dugme „Pomoć i povratne informacije” je prikazano</string>
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<string name="revanced_hide_player_flyout_speed_title">Sakrij dugme „Brzina reprodukcije”</string>
<string name="revanced_hide_player_flyout_speed_title">Sakrij meni „Brzina reprodukcije”</string>
<string name="revanced_hide_player_flyout_speed_summary_on">Meni „Brzina reprodukcije” je skriven</string>
<string name="revanced_hide_player_flyout_speed_summary_off">Meni „Brzina reprodukcije” je prikazan</string>
<!-- 'More info' should be translated using the same localized wording YouTube displays for the menu item.
@@ -540,7 +540,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_flyout_lock_screen_summary_on">Dugme „Zaključaj ekran” je skriveno</string>
<string name="revanced_hide_player_flyout_lock_screen_summary_off">Dugme „Zaključaj ekran” je prikazano</string>
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<string name="revanced_hide_player_flyout_audio_track_title">Sakrij dugme „Audio snimak”</string>
<string name="revanced_hide_player_flyout_audio_track_title">Sakrij meni „Audio snimak”</string>
<string name="revanced_hide_player_flyout_audio_track_summary_on">Meni „Audio snimak” je skriven</string>
<string name="revanced_hide_player_flyout_audio_track_summary_off">Meni „Audio snimak” je prikazan</string>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
@@ -964,10 +964,10 @@ This is because Crowdin requires temporarily flattening this file and removing t
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">Ciljna verzija aplikacije za lažiranje</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Vraća Return YouTube Dislike u Shorts videima u režimu bez arhiviranja</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Vraća širok meni za brzinu i kvalitet videa</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Vraća karticu zbirke</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Vraća staru policu plejliste</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Vraća Return YouTube Dislike u Shorts videima u režimu bez arhiviranja</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Vraća širok meni za brzinu i kvalitet videa</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Vraća karticu zbirke</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Vraća staru policu plejliste</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Podešavanje početne stranice</string>

View File

@@ -500,17 +500,17 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_flyout_title">Падајући мени</string>
<string name="revanced_hide_player_flyout_summary">Сакријте или прикажите предмете у падајућем менију плејера</string>
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
<string name="revanced_hide_player_flyout_captions_title">Сакриј дугме „Титл”</string>
<string name="revanced_hide_player_flyout_captions_title">Сакриј мени „Титл”</string>
<string name="revanced_hide_player_flyout_captions_summary_on">Мени „Титл” је скривен</string>
<string name="revanced_hide_player_flyout_captions_summary_off">Мени „Титл” је приказан</string>
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
<string name="revanced_hide_player_flyout_additional_settings_title">Сакриј дугме „Додатна подешавања”</string>
<string name="revanced_hide_player_flyout_additional_settings_title">Сакриј мени „Додатна подешавања”</string>
<string name="revanced_hide_player_flyout_additional_settings_summary_on">Мени „Додатна подешавања” је скривен</string>
<string name="revanced_hide_player_flyout_additional_settings_summary_off">Мени „Додатна подешавања” је приказан</string>
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
<string name="revanced_hide_player_flyout_sleep_timer_title">Сакриј тајмер за спавање</string>
<string name="revanced_hide_player_flyout_sleep_timer_summary_on">Мени тајмера за спавање је скривен</string>
<string name="revanced_hide_player_flyout_sleep_timer_summary_off">Мени тајмера за спавање је приказан</string>
<string name="revanced_hide_player_flyout_sleep_timer_title">Сакриј мени „Тајмер за спавање</string>
<string name="revanced_hide_player_flyout_sleep_timer_summary_on">Мени „Тајмер за спавање је скривен</string>
<string name="revanced_hide_player_flyout_sleep_timer_summary_off">Мени „Тајмер за спавање је приказан</string>
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
<string name="revanced_hide_player_flyout_loop_video_title">Сакриј дугме „Понављај видео”</string>
<string name="revanced_hide_player_flyout_loop_video_summary_on">Дугме „Понављај видео” је скривено</string>
@@ -527,7 +527,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_flyout_help_summary_on">Дугме „Помоћ и повратне информације” је скривено</string>
<string name="revanced_hide_player_flyout_help_summary_off">Дугме „Помоћ и повратне информације” је приказано</string>
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
<string name="revanced_hide_player_flyout_speed_title">Сакриј дугме „Брзина репродукције”</string>
<string name="revanced_hide_player_flyout_speed_title">Сакриј мени „Брзина репродукције”</string>
<string name="revanced_hide_player_flyout_speed_summary_on">Мени „Брзина репродукције” је скривен</string>
<string name="revanced_hide_player_flyout_speed_summary_off">Мени „Брзина репродукције” је приказан</string>
<!-- 'More info' should be translated using the same localized wording YouTube displays for the menu item.
@@ -540,7 +540,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_flyout_lock_screen_summary_on">Дугме „Закључај екран” је скривено</string>
<string name="revanced_hide_player_flyout_lock_screen_summary_off">Дугме „Закључај екран” је приказано</string>
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
<string name="revanced_hide_player_flyout_audio_track_title">Сакриј дугме „Аудио снимак”</string>
<string name="revanced_hide_player_flyout_audio_track_title">Сакриј мени „Аудио снимак”</string>
<string name="revanced_hide_player_flyout_audio_track_summary_on">Мени „Аудио снимак” је скривен</string>
<string name="revanced_hide_player_flyout_audio_track_summary_off">Мени „Аудио снимак” је приказан</string>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
@@ -964,10 +964,10 @@ This is because Crowdin requires temporarily flattening this file and removing t
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">Циљна верзија апликације за лажирање</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Враћа Return YouTube Dislike у Shorts видеима у режиму без архивирања</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Враћа широк мени за брзину и квалитет видеа</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Враћа картицу збирке</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Враћа стару полицу плејлисте</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Враћа Return YouTube Dislike у Shorts видеима у режиму без архивирања</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Враћа широк мени за брзину и квалитет видеа</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Враћа картицу збирке</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Враћа стару полицу плејлисте</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Подешавање почетне странице</string>

View File

@@ -963,11 +963,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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-versionsmål</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - Återställ gamla kortspelsikoner</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Återställ RYD på Shorts inkognitoläge</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Återställ videons hastighet &amp; kvalitetsmeny</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Återställ biblioteksfliken</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Återställ gamla spellisthyllor</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Återställ RYD på Shorts inkognitoläge</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Återställ videons hastighet &amp; kvalitetsmeny</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Återställ biblioteksfliken</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Återställ gamla spellisthyllor</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Ställ in startsida</string>

View File

@@ -963,10 +963,10 @@ This is because Crowdin requires temporarily flattening this file and removing t
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">Taklit edilecek uygulama sürümü</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Gizli modda Shorts için RYD\'yi onar</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Geniş video hızı &amp; kalite menüsünü geri getir</string>
<string name="revanced_spoof_app_version_target_entry_3">18.08.39 - Kitaplık sekmesini geri getir</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Eski oynatma listesi rafını geri getir</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Gizli modda Shorts için RYD\'yi onar</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Geniş video hızı &amp; kalite menüsünü geri getir</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.08.39 - Kitaplık sekmesini geri getir</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Eski oynatma listesi rafını geri getir</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Başlangıç sayfasını seç</string>

View File

@@ -962,11 +962,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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">Підробити версію програми на</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - Відновити старі іконки плеєра</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Відновлення RYD в анонімному режимі Shorts</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Відновлення розширеного меню швидкості та якості відео</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Відновлення вкладки Бібліотека</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Відновлення старого інтерфейсу плейлиста</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Відновлення RYD в анонімному режимі Shorts</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Відновлення розширеного меню швидкості та якості відео</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Відновлення вкладки Бібліотека</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Відновлення старого інтерфейсу плейлиста</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Початкова сторінка</string>

View File

@@ -923,10 +923,10 @@ This is because Crowdin requires temporarily flattening this file and removing t
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">Phiên bản giả mạo mục tiêu</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Khôi phục RYD trong Shorts chế độ ẩn danh</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Khôi phục trình đơn tốc độ &amp; chất lượng cho video rộng</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Khôi phục thẻ thư viện</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Khôi phục kệ danh sách phát cũ</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Khôi phục RYD trong Shorts chế độ ẩn danh</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Khôi phục trình đơn tốc độ &amp; chất lượng cho video rộng</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Khôi phục thẻ thư viện</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - Khôi phục kệ danh sách phát cũ</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Đặt trang bắt đầu</string>

View File

@@ -954,11 +954,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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">伪装应用程序版本为</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - 还原旧短程播放器图标</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - 在隐身模式下恢复 RYD</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - 还原宽视频速度 &amp; 画质菜单</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - 还原库标签</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - 还原旧的播放列表</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - 在隐身模式下恢复 RYD</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - 还原宽视频速度 &amp; 画质菜单</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - 还原库标签</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - 还原旧的播放列表</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">设置起始页</string>

View File

@@ -963,10 +963,10 @@ This is because Crowdin requires temporarily flattening this file and removing t
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">欺騙應用程式版本目標</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - 在 Shorts 無痕模式中還原 RYD</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - 還原寬影片速度 &amp; 畫質選單</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - 還原庫標籤</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - 還原舊版播放清單匣</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - 在 Shorts 無痕模式中還原 RYD</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - 還原寬影片速度 &amp; 畫質選單</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - 還原庫標籤</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.41.37 - 還原舊版播放清單匣</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">設定起始頁面</string>

View File

@@ -15,15 +15,21 @@
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string-array name="revanced_spoof_app_version_target_entries">
<item>@string/revanced_spoof_app_version_target_entry_1</item>
<item>@string/revanced_spoof_app_version_target_entry_2</item>
<item>@string/revanced_spoof_app_version_target_entry_3</item>
<item>@string/revanced_spoof_app_version_target_entry_4</item>
</string-array>
<string-array name="revanced_spoof_app_version_target_entry_values">
<item>18.38.44</item>
</string-array>
<string-array name="revanced_spoof_app_version_target_legacy_entries">
<item>@string/revanced_spoof_app_version_target_legacy_entry_1</item>
<item>@string/revanced_spoof_app_version_target_legacy_entry_2</item>
<item>@string/revanced_spoof_app_version_target_legacy_entry_3</item>
<item>@string/revanced_spoof_app_version_target_legacy_entry_4</item>
</string-array>
<string-array name="revanced_spoof_app_version_target_legacy_entry_values">
<item>18.33.40</item>
<item>18.20.39</item>
<item>18.09.39</item>
<item>17.41.37</item>
<item>17.33.42</item>
</string-array>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">

View File

@@ -973,11 +973,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
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 target</string>
<string name="revanced_spoof_app_version_target_entry_1">18.38.44 - Restore old Shorts player icons</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_entry_1">18.33.40 - Restore RYD on Shorts incognito mode</string>
<string name="revanced_spoof_app_version_target_entry_2">18.20.39 - Restore wide video speed &amp; quality menu</string>
<string name="revanced_spoof_app_version_target_entry_3">18.09.39 - Restore library tab</string>
<string name="revanced_spoof_app_version_target_entry_4">17.41.37 - Restore old playlist shelf</string>
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Restore RYD on Shorts incognito mode</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Restore wide video speed &amp; quality menu</string>
<string name="revanced_spoof_app_version_target_legacy_entry_3">18.09.39 - Restore library tab</string>
<string name="revanced_spoof_app_version_target_legacy_entry_4">17.33.42 - Restore old playlist shelf</string>
</patch>
<patch id="layout.startpage.changeStartPagePatch">
<string name="revanced_change_start_page_title">Set start page</string>
@@ -1188,6 +1189,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_custom_playback_speeds_summary">Add or change the custom playback speeds</string>
<string name="revanced_custom_playback_speeds_invalid">Custom speeds must be less than %s. Using default values.</string>
<string name="revanced_custom_playback_speeds_parse_exception">Invalid custom playback speeds. Using default values.</string>
<string name="revanced_custom_playback_speeds_auto">Auto</string>
</patch>
<patch id="video.speed.remember.rememberPlaybackSpeedPatch">
<string name="revanced_remember_playback_speed_last_selected_title">Remember playback speed changes</string>