diff --git a/.github/workflows/pull_strings.yml b/.github/workflows/pull_strings.yml index ab40435fd..93da23904 100644 --- a/.github/workflows/pull_strings.yml +++ b/.github/workflows/pull_strings.yml @@ -2,7 +2,7 @@ name: Pull strings on: schedule: - - cron: "0 */8 * * *" + - cron: "0 */12 * * *" workflow_dispatch: jobs: diff --git a/CHANGELOG.md b/CHANGELOG.md index 12f8ef036..ab286462d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,31 @@ +# [5.15.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.15.0-dev.3...v5.15.0-dev.4) (2025-03-21) + + +### Bug Fixes + +* **YouTube - Spoof app version:** Change oldest spoof target to 19.01.34 ([5012439](https://github.com/ReVanced/revanced-patches/commit/5012439a8e53b2a4ab5e85c47976e1ab28a51208)) + +# [5.15.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.15.0-dev.2...v5.15.0-dev.3) (2025-03-20) + + +### Bug Fixes + +* **YouTube:** Do not show restart prompt more than once if setting change is canceled ([49797fe](https://github.com/ReVanced/revanced-patches/commit/49797fe8d0c4a0981ef621a31356c4315ae3777b)) + +# [5.15.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.15.0-dev.1...v5.15.0-dev.2) (2025-03-19) + + +### Bug Fixes + +* **YouTube - Spoof app version:** Remove broken spoof targets that YouTube no longer supports ([#4610](https://github.com/ReVanced/revanced-patches/issues/4610)) ([883fbe7](https://github.com/ReVanced/revanced-patches/commit/883fbe71233c57cb1241e57c122b43f40722acc7)) + +# [5.15.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.14.0...v5.15.0-dev.1) (2025-03-19) + + +### Features + +* **YouTube - SponsorBlock:** Add opacity setting to category segment colors ([#4582](https://github.com/ReVanced/revanced-patches/issues/4582)) ([6e8ffba](https://github.com/ReVanced/revanced-patches/commit/6e8ffbade9e03658f725622631e44dabf2995861)) + # [5.14.0](https://github.com/ReVanced/revanced-patches/compare/v5.13.0...v5.14.0) (2025-03-09) diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/preference/AbstractPreferenceFragment.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/preference/AbstractPreferenceFragment.java index 2aeab6134..17646fec9 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/preference/AbstractPreferenceFragment.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/preference/AbstractPreferenceFragment.java @@ -22,12 +22,23 @@ import app.revanced.extension.shared.settings.Setting; @SuppressWarnings("deprecation") public abstract class AbstractPreferenceFragment extends PreferenceFragment { + /** * Indicates that if a preference changes, * to apply the change from the Setting to the UI component. */ public static boolean settingImportInProgress; + /** + * Prevents recursive calls during preference <-> UI syncing from showing extra dialogs. + */ + private static boolean updatingPreference; + + /** + * Used to prevent showing reboot dialog, if user cancels a setting user dialog. + */ + private static boolean showingUserDialogMessage; + /** * Confirm and restart dialog button text and title. * Set by subclasses if Strings cannot be added as a resource. @@ -35,13 +46,13 @@ public abstract class AbstractPreferenceFragment extends PreferenceFragment { @Nullable protected static String restartDialogButtonText, restartDialogTitle, confirmDialogTitle; - /** - * Used to prevent showing reboot dialog, if user cancels a setting user dialog. - */ - private boolean showingUserDialogMessage; - private final SharedPreferences.OnSharedPreferenceChangeListener listener = (sharedPreferences, str) -> { try { + if (updatingPreference) { + Logger.printDebug(() -> "Ignoring preference change as sync is in progress"); + return; + } + Setting setting = Setting.getSettingFromPath(Objects.requireNonNull(str)); if (setting == null) { return; @@ -63,10 +74,13 @@ public abstract class AbstractPreferenceFragment extends PreferenceFragment { } } + updatingPreference = true; // Apply 'Setting <- Preference', unless during importing when it needs to be 'Setting -> Preference'. + // Updating here can can cause a recursive call back into this same method. updatePreference(pref, setting, true, settingImportInProgress); // Update any other preference availability that may now be different. updateUIAvailability(); + updatingPreference = false; } catch (Exception ex) { Logger.printException(() -> "OnSharedPreferenceChangeListener failure", ex); } @@ -97,7 +111,9 @@ public abstract class AbstractPreferenceFragment extends PreferenceFragment { if (confirmDialogTitle == null) { confirmDialogTitle = str("revanced_settings_confirm_user_dialog_title"); } + showingUserDialogMessage = true; + new AlertDialog.Builder(context) .setTitle(confirmDialogTitle) .setMessage(Objects.requireNonNull(setting.userDialogMessage).toString()) @@ -141,14 +157,16 @@ public abstract class AbstractPreferenceFragment extends PreferenceFragment { * @return If the preference is currently set to the default value of the Setting. */ protected boolean prefIsSetToDefault(Preference pref, Setting setting) { + Object defaultValue = setting.defaultValue; if (pref instanceof SwitchPreference switchPref) { - return switchPref.isChecked() == (Boolean) setting.defaultValue; + return switchPref.isChecked() == (Boolean) defaultValue; } + String defaultValueString = defaultValue.toString(); if (pref instanceof EditTextPreference editPreference) { - return editPreference.getText().equals(setting.defaultValue.toString()); + return editPreference.getText().equals(defaultValueString); } if (pref instanceof ListPreference listPref) { - return listPref.getValue().equals(setting.defaultValue.toString()); + return listPref.getValue().equals(defaultValueString); } throw new IllegalStateException("Must override method to handle " @@ -255,7 +273,7 @@ public abstract class AbstractPreferenceFragment extends PreferenceFragment { } } - public static void showRestartDialog(@NonNull final Context context) { + public static void showRestartDialog(Context context) { Utils.verifyOnMainThread(); if (restartDialogTitle == null) { restartDialogTitle = str("revanced_settings_restart_title"); @@ -263,6 +281,7 @@ public abstract class AbstractPreferenceFragment extends PreferenceFragment { if (restartDialogButtonText == null) { restartDialogButtonText = str("revanced_settings_restart"); } + new AlertDialog.Builder(context) .setMessage(restartDialogTitle) .setPositiveButton(restartDialogButtonText, (dialog, id) diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/preference/ResettableEditTextPreference.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/preference/ResettableEditTextPreference.java index 3e9a96961..98f4a715f 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/preference/ResettableEditTextPreference.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/preference/ResettableEditTextPreference.java @@ -1,5 +1,7 @@ package app.revanced.extension.shared.settings.preference; +import static app.revanced.extension.shared.StringRef.str; + import android.app.AlertDialog; import android.content.Context; import android.os.Bundle; @@ -8,17 +10,23 @@ import android.util.AttributeSet; import android.widget.Button; import android.widget.EditText; -import app.revanced.extension.shared.Utils; -import app.revanced.extension.shared.settings.Setting; -import app.revanced.extension.shared.Logger; +import androidx.annotation.Nullable; import java.util.Objects; -import static app.revanced.extension.shared.StringRef.str; +import app.revanced.extension.shared.Logger; +import app.revanced.extension.shared.Utils; +import app.revanced.extension.shared.settings.Setting; @SuppressWarnings({"unused", "deprecation"}) public class ResettableEditTextPreference extends EditTextPreference { + /** + * Setting to reset. + */ + @Nullable + private Setting setting; + public ResettableEditTextPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } @@ -32,12 +40,22 @@ public class ResettableEditTextPreference extends EditTextPreference { super(context); } + public void setSetting(@Nullable Setting setting) { + this.setting = setting; + } + @Override protected void onPrepareDialogBuilder(AlertDialog.Builder builder) { super.onPrepareDialogBuilder(builder); Utils.setEditTextDialogTheme(builder); - Setting setting = Setting.getSettingFromPath(getKey()); + if (setting == null) { + String key = getKey(); + if (key != null) { + setting = Setting.getSettingFromPath(key); + } + } + if (setting != null) { builder.setNeutralButton(str("revanced_settings_reset"), null); } @@ -54,8 +72,7 @@ public class ResettableEditTextPreference extends EditTextPreference { } button.setOnClickListener(v -> { try { - Setting setting = Objects.requireNonNull(Setting.getSettingFromPath(getKey())); - String defaultStringValue = setting.defaultValue.toString(); + String defaultStringValue = Objects.requireNonNull(setting).defaultValue.toString(); EditText editText = getEditText(); editText.setText(defaultStringValue); editText.setSelection(defaultStringValue.length()); // move cursor to end of text diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ReturnYouTubeDislikePatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ReturnYouTubeDislikePatch.java index 752fdaf8b..5c54985bb 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ReturnYouTubeDislikePatch.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ReturnYouTubeDislikePatch.java @@ -21,7 +21,6 @@ import java.util.Objects; import app.revanced.extension.shared.Logger; import app.revanced.extension.shared.Utils; import app.revanced.extension.youtube.patches.components.ReturnYouTubeDislikeFilterPatch; -import app.revanced.extension.youtube.patches.spoof.SpoofAppVersionPatch; import app.revanced.extension.youtube.returnyoutubedislike.ReturnYouTubeDislike; import app.revanced.extension.youtube.returnyoutubedislike.requests.ReturnYouTubeDislikeApi; import app.revanced.extension.youtube.settings.Settings; @@ -47,9 +46,6 @@ import app.revanced.extension.youtube.shared.PlayerType; @SuppressWarnings("unused") public class ReturnYouTubeDislikePatch { - public static final boolean IS_SPOOFING_TO_NON_LITHO_SHORTS_PLAYER = - SpoofAppVersionPatch.isSpoofingToLessThan("18.34.00"); - /** * RYD data for the current video on screen. */ @@ -347,137 +343,6 @@ public class ReturnYouTubeDislikePatch { } } - // - // Non litho Shorts player. - // - - /** - * Replacement text to use for "Dislikes" while RYD is fetching. - */ - private static final Spannable SHORTS_LOADING_SPAN = new SpannableString("-"); - - /** - * Dislikes TextViews used by Shorts. - * - * Multiple TextViews are loaded at once (for the prior and next videos to swipe to). - * Keep track of all of them, and later pick out the correct one based on their on screen position. - */ - private static final List> shortsTextViewRefs = new ArrayList<>(); - - private static void clearRemovedShortsTextViews() { - shortsTextViewRefs.removeIf(ref -> ref.get() == null); - } - - /** - * Injection point. Called when a Shorts dislike is updated. Always on main thread. - * Handles update asynchronously, otherwise Shorts video will be frozen while the UI thread is blocked. - * - * @return if RYD is enabled and the TextView was updated. - */ - public static boolean setShortsDislikes(@NonNull View likeDislikeView) { - try { - if (!Settings.RYD_ENABLED.get()) { - return false; - } - if (!Settings.RYD_SHORTS.get() || Settings.HIDE_SHORTS_DISLIKE_BUTTON.get()) { - // Must clear the data here, in case a new video was loaded while PlayerType - // suggested the video was not a short (can happen when spoofing to an old app version). - clearData(); - return false; - } - Logger.printDebug(() -> "setShortsDislikes"); - - TextView textView = (TextView) likeDislikeView; - textView.setText(SHORTS_LOADING_SPAN); // Change 'Dislike' text to the loading text. - shortsTextViewRefs.add(new WeakReference<>(textView)); - - if (likeDislikeView.isSelected() && isShortTextViewOnScreen(textView)) { - Logger.printDebug(() -> "Shorts dislike is already selected"); - ReturnYouTubeDislike videoData = currentVideoData; - if (videoData != null) videoData.setUserVote(Vote.DISLIKE); - } - - // For the first short played, the Shorts dislike hook is called after the video id hook. - // But for most other times this hook is called before the video id (which is not ideal). - // Must update the TextViews here, and also after the videoId changes. - updateOnScreenShortsTextViews(false); - - return true; - } catch (Exception ex) { - Logger.printException(() -> "setShortsDislikes failure", ex); - return false; - } - } - - /** - * @param forceUpdate if false, then only update the 'loading text views. - * If true, update all on screen text views. - */ - private static void updateOnScreenShortsTextViews(boolean forceUpdate) { - try { - clearRemovedShortsTextViews(); - if (shortsTextViewRefs.isEmpty()) { - return; - } - ReturnYouTubeDislike videoData = currentVideoData; - if (videoData == null) { - return; - } - - Logger.printDebug(() -> "updateShortsTextViews"); - - Runnable update = () -> { - Spanned shortsDislikesSpan = videoData.getDislikeSpanForShort(SHORTS_LOADING_SPAN); - Utils.runOnMainThreadNowOrLater(() -> { - String videoId = videoData.getVideoId(); - if (!videoId.equals(VideoInformation.getVideoId())) { - // User swiped to new video before fetch completed - Logger.printDebug(() -> "Ignoring stale dislikes data for short: " + videoId); - return; - } - - // Update text views that appear to be visible on screen. - // Only 1 will be the actual textview for the current Short, - // but discarded and not yet garbage collected views can remain. - // So must set the dislike span on all views that match. - for (WeakReference textViewRef : shortsTextViewRefs) { - TextView textView = textViewRef.get(); - if (textView == null) { - continue; - } - if (isShortTextViewOnScreen(textView) - && (forceUpdate || textView.getText().toString().equals(SHORTS_LOADING_SPAN.toString()))) { - Logger.printDebug(() -> "Setting Shorts TextView to: " + shortsDislikesSpan); - textView.setText(shortsDislikesSpan); - } - } - }); - }; - if (videoData.fetchCompleted()) { - update.run(); // Network call is completed, no need to wait on background thread. - } else { - Utils.runOnBackgroundThread(update); - } - } catch (Exception ex) { - Logger.printException(() -> "updateOnScreenShortsTextViews failure", ex); - } - } - - /** - * Check if a view is within the screen bounds. - */ - private static boolean isShortTextViewOnScreen(@NonNull View view) { - final int[] location = new int[2]; - view.getLocationInWindow(location); - if (location[0] <= 0 && location[1] <= 0) { // Lower bound - return false; - } - Rect windowRect = new Rect(); - view.getWindowVisibleDisplayFrame(windowRect); // Upper bound - return location[0] < windowRect.width() && location[1] < windowRect.height(); - } - - // // Video Id and voting hooks (all players). // @@ -503,8 +368,7 @@ public class ReturnYouTubeDislikePatch { if (videoIdIsShort && (!isShortAndOpeningOrPlaying || !Settings.RYD_SHORTS.get())) { return; } - final boolean waitForFetchToComplete = !IS_SPOOFING_TO_NON_LITHO_SHORTS_PLAYER - && videoIdIsShort && !lastPlayerResponseWasShort; + final boolean waitForFetchToComplete = videoIdIsShort && !lastPlayerResponseWasShort; Logger.printDebug(() -> "Prefetching RYD for video: " + videoId); ReturnYouTubeDislike fetch = ReturnYouTubeDislike.getFetchForVideoId(videoId); @@ -557,12 +421,6 @@ public class ReturnYouTubeDislikePatch { data.setVideoIdIsShort(true); } currentVideoData = data; - - // Current video id hook can be called out of order with the non litho Shorts text view hook. - // Must manually update again here. - if (isNoneHiddenOrSlidingMinimized) { - updateOnScreenShortsTextViews(true); - } } catch (Exception ex) { Logger.printException(() -> "newVideoLoaded failure", ex); } diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/ReturnYouTubeDislike.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/ReturnYouTubeDislike.java index 36623c522..6752840ec 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/ReturnYouTubeDislike.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/ReturnYouTubeDislike.java @@ -37,7 +37,6 @@ import java.util.concurrent.*; import app.revanced.extension.shared.Logger; import app.revanced.extension.shared.Utils; import app.revanced.extension.youtube.ThemeHelper; -import app.revanced.extension.youtube.patches.spoof.SpoofAppVersionPatch; import app.revanced.extension.youtube.returnyoutubedislike.requests.RYDVoteData; import app.revanced.extension.youtube.returnyoutubedislike.requests.ReturnYouTubeDislikeApi; import app.revanced.extension.youtube.settings.Settings; @@ -87,9 +86,6 @@ public class ReturnYouTubeDislike { */ private static final char MIDDLE_SEPARATOR_CHARACTER = '◎'; // 'bullseye' - private static final boolean IS_SPOOFING_TO_OLD_SEPARATOR_COLOR - = SpoofAppVersionPatch.isSpoofingToLessThan("18.10.00"); - /** * Cached lookup of all video ids. */ @@ -184,17 +180,8 @@ public class ReturnYouTubeDislike { * Color of the left and middle separator, based on the color of the right separator. * It's unknown where YT gets the color from, and the values here are approximated by hand. * Ideally, this would be the actual color YT uses at runtime. - * - * Older versions before the 'Me' library tab use a slightly different color. - * If spoofing was previously used and is now turned off, - * or an old version was recently upgraded then the old colors are sometimes still used. */ private static int getSeparatorColor() { - if (IS_SPOOFING_TO_OLD_SEPARATOR_COLOR) { - return ThemeHelper.isDarkTheme() - ? 0x29AAAAAA // transparent dark gray - : 0xFFD9D9D9; // light gray - } return ThemeHelper.isDarkTheme() ? 0x33FFFFFF : 0xFFD9D9D9; diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java index 954d75bb6..4724b0f47 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java @@ -3,7 +3,6 @@ package app.revanced.extension.youtube.settings; import static java.lang.Boolean.FALSE; import static java.lang.Boolean.TRUE; import static app.revanced.extension.shared.settings.Setting.Availability; -import static app.revanced.extension.shared.settings.Setting.migrateFromOldPreferences; import static app.revanced.extension.shared.settings.Setting.migrateOldSettingToNew; import static app.revanced.extension.shared.settings.Setting.parent; import static app.revanced.extension.shared.settings.Setting.parentsAny; @@ -21,7 +20,6 @@ import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerT import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerType.MODERN_4; import static app.revanced.extension.youtube.patches.OpenShortsInRegularPlayerPatch.ShortsPlayerType; import static app.revanced.extension.youtube.patches.SeekbarThumbnailsPatch.SeekbarThumbnailsHighQualityAvailability; -import static app.revanced.extension.youtube.patches.VersionCheckPatch.IS_19_17_OR_GREATER; import static app.revanced.extension.youtube.sponsorblock.objects.CategoryBehaviour.IGNORE; import static app.revanced.extension.youtube.sponsorblock.objects.CategoryBehaviour.MANUAL_SKIP; import static app.revanced.extension.youtube.sponsorblock.objects.CategoryBehaviour.SKIP_AUTOMATICALLY; @@ -38,7 +36,6 @@ import app.revanced.extension.shared.settings.IntegerSetting; import app.revanced.extension.shared.settings.LongSetting; import app.revanced.extension.shared.settings.Setting; import app.revanced.extension.shared.settings.StringSetting; -import app.revanced.extension.shared.settings.preference.SharedPrefCategory; import app.revanced.extension.youtube.patches.AlternativeThumbnailsPatch.DeArrowAvailability; import app.revanced.extension.youtube.patches.AlternativeThumbnailsPatch.StillImagesAvailability; import app.revanced.extension.youtube.patches.AlternativeThumbnailsPatch.ThumbnailOption; @@ -221,7 +218,7 @@ public class Settings extends BaseSettings { 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 BooleanSetting WIDE_SEARCHBAR = new BooleanSetting("revanced_wide_searchbar", FALSE, true); public static final EnumSetting CHANGE_START_PAGE = new EnumSetting<>("revanced_change_start_page", StartPage.DEFAULT, true); - public static final StringSetting SPOOF_APP_VERSION_TARGET = new StringSetting("revanced_spoof_app_version_target", IS_19_17_OR_GREATER ? "19.26.42" : "17.33.42", true, parent(SPOOF_APP_VERSION)); + public static final StringSetting SPOOF_APP_VERSION_TARGET = new StringSetting("revanced_spoof_app_version_target", "19.01.34", true, parent(SPOOF_APP_VERSION)); // Custom filter public static final BooleanSetting CUSTOM_FILTER = new BooleanSetting("revanced_custom_filter", FALSE); public static final StringSetting CUSTOM_FILTER_STRINGS = new StringSetting("revanced_custom_filter_strings", "", true, parent(CUSTOM_FILTER)); @@ -365,27 +362,36 @@ public class Settings extends BaseSettings { public static final BooleanSetting SB_SEEN_GUIDELINES = new BooleanSetting("sb_seen_guidelines", FALSE, false, false); public static final StringSetting SB_CATEGORY_SPONSOR = new StringSetting("sb_sponsor", SKIP_AUTOMATICALLY_ONCE.reVancedKeyValue); public static final StringSetting SB_CATEGORY_SPONSOR_COLOR = new StringSetting("sb_sponsor_color", "#00D400"); + public static final FloatSetting SB_CATEGORY_SPONSOR_OPACITY = new FloatSetting("sb_sponsor_opacity", 0.8f); public static final StringSetting SB_CATEGORY_SELF_PROMO = new StringSetting("sb_selfpromo", MANUAL_SKIP.reVancedKeyValue); public static final StringSetting SB_CATEGORY_SELF_PROMO_COLOR = new StringSetting("sb_selfpromo_color", "#FFFF00"); + public static final FloatSetting SB_CATEGORY_SELF_PROMO_OPACITY = new FloatSetting("sb_selfpromo_opacity", 0.8f); public static final StringSetting SB_CATEGORY_INTERACTION = new StringSetting("sb_interaction", MANUAL_SKIP.reVancedKeyValue); public static final StringSetting SB_CATEGORY_INTERACTION_COLOR = new StringSetting("sb_interaction_color", "#CC00FF"); + public static final FloatSetting SB_CATEGORY_INTERACTION_OPACITY = new FloatSetting("sb_interaction_opacity", 0.8f); public static final StringSetting SB_CATEGORY_HIGHLIGHT = new StringSetting("sb_highlight", MANUAL_SKIP.reVancedKeyValue); public static final StringSetting SB_CATEGORY_HIGHLIGHT_COLOR = new StringSetting("sb_highlight_color", "#FF1684"); + public static final FloatSetting SB_CATEGORY_HIGHLIGHT_OPACITY = new FloatSetting("sb_highlight_opacity", 0.8f); public static final StringSetting SB_CATEGORY_INTRO = new StringSetting("sb_intro", MANUAL_SKIP.reVancedKeyValue); public static final StringSetting SB_CATEGORY_INTRO_COLOR = new StringSetting("sb_intro_color", "#00FFFF"); + public static final FloatSetting SB_CATEGORY_INTRO_OPACITY = new FloatSetting("sb_intro_opacity", 0.8f); public static final StringSetting SB_CATEGORY_OUTRO = new StringSetting("sb_outro", MANUAL_SKIP.reVancedKeyValue); public static final StringSetting SB_CATEGORY_OUTRO_COLOR = new StringSetting("sb_outro_color", "#0202ED"); + public static final FloatSetting SB_CATEGORY_OUTRO_OPACITY = new FloatSetting("sb_outro_opacity", 0.8f); public static final StringSetting SB_CATEGORY_PREVIEW = new StringSetting("sb_preview", IGNORE.reVancedKeyValue); public static final StringSetting SB_CATEGORY_PREVIEW_COLOR = new StringSetting("sb_preview_color", "#008FD6"); + public static final FloatSetting SB_CATEGORY_PREVIEW_OPACITY = new FloatSetting("sb_preview_opacity", 0.8f); public static final StringSetting SB_CATEGORY_FILLER = new StringSetting("sb_filler", IGNORE.reVancedKeyValue); public static final StringSetting SB_CATEGORY_FILLER_COLOR = new StringSetting("sb_filler_color", "#7300FF"); + public static final FloatSetting SB_CATEGORY_FILLER_OPACITY = new FloatSetting("sb_filler_opacity", 0.8f); public static final StringSetting SB_CATEGORY_MUSIC_OFFTOPIC = new StringSetting("sb_music_offtopic", MANUAL_SKIP.reVancedKeyValue); public static final StringSetting SB_CATEGORY_MUSIC_OFFTOPIC_COLOR = new StringSetting("sb_music_offtopic_color", "#FF9900"); + public static final FloatSetting SB_CATEGORY_MUSIC_OFFTOPIC_OPACITY = new FloatSetting("sb_music_offtopic_opacity", 0.8f); public static final StringSetting SB_CATEGORY_UNSUBMITTED = new StringSetting("sb_unsubmitted", SKIP_AUTOMATICALLY.reVancedKeyValue); public static final StringSetting SB_CATEGORY_UNSUBMITTED_COLOR = new StringSetting("sb_unsubmitted_color", "#FFFFFF"); + public static final FloatSetting SB_CATEGORY_UNSUBMITTED_OPACITY = new FloatSetting("sb_unsubmitted_opacity", 1.0f); // Deprecated migrations - private static final StringSetting DEPRECATED_SB_UUID_OLD_MIGRATION_SETTING = new StringSetting("uuid", ""); // Delete sometime in 2024 private static final BooleanSetting DEPRECATED_HIDE_PLAYER_BUTTONS = new BooleanSetting("revanced_hide_player_buttons", FALSE, true); private static final BooleanSetting DEPRECATED_HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER = new BooleanSetting("revanced_hide_video_quality_menu_footer", FALSE); private static final IntegerSetting DEPRECATED_SWIPE_OVERLAY_BACKGROUND_ALPHA = new IntegerSetting("revanced_swipe_overlay_background_alpha", 127); @@ -396,16 +402,6 @@ public class Settings extends BaseSettings { static { // region Migration - // Do _not_ delete this SB private user id migration property until sometime in early 2025. - // This is the only setting that cannot be reconfigured if lost, - // and more time should be given for users who rarely upgrade. - SharedPrefCategory sbPrefs = new SharedPrefCategory("sponsor-block"); - // Remove the "sb_" prefix, as old settings are saved without it. - String key = DEPRECATED_SB_UUID_OLD_MIGRATION_SETTING.key.substring(3); - migrateFromOldPreferences(sbPrefs, DEPRECATED_SB_UUID_OLD_MIGRATION_SETTING, key); - - migrateOldSettingToNew(DEPRECATED_SB_UUID_OLD_MIGRATION_SETTING, SB_PRIVATE_USER_ID); - migrateOldSettingToNew(DEPRECATED_HIDE_PLAYER_BUTTONS, HIDE_PLAYER_PREVIOUS_NEXT_BUTTONS); migrateOldSettingToNew(DEPRECATED_HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER, HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER); @@ -449,6 +445,12 @@ public class Settings extends BaseSettings { DEPRECATED_SWIPE_OVERLAY_BACKGROUND_ALPHA.resetToDefault(); } + // Old spoof versions that no longer work. + if (SPOOF_APP_VERSION_TARGET.get().compareTo(SPOOF_APP_VERSION_TARGET.defaultValue) < 0) { + Logger.printInfo(() -> "Resetting spoof app version target"); + SPOOF_APP_VERSION_TARGET.resetToDefault(); + } + // endregion // region SB import/export callbacks diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ReturnYouTubeDislikePreferenceFragment.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ReturnYouTubeDislikePreferenceFragment.java index 5e234ec28..bb62386ac 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ReturnYouTubeDislikePreferenceFragment.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ReturnYouTubeDislikePreferenceFragment.java @@ -14,6 +14,7 @@ import android.preference.PreferenceScreen; import android.preference.SwitchPreference; import app.revanced.extension.shared.Logger; +import app.revanced.extension.shared.Utils; import app.revanced.extension.shared.settings.Setting; import app.revanced.extension.shared.settings.BaseSettings; import app.revanced.extension.youtube.patches.ReturnYouTubeDislikePatch; @@ -85,9 +86,7 @@ public class ReturnYouTubeDislikePreferenceFragment extends PreferenceFragment { shortsPreference = new SwitchPreference(context); shortsPreference.setChecked(Settings.RYD_SHORTS.get()); shortsPreference.setTitle(str("revanced_ryd_shorts_title")); - String shortsSummary = ReturnYouTubeDislikePatch.IS_SPOOFING_TO_NON_LITHO_SHORTS_PLAYER - ? str("revanced_ryd_shorts_summary_on") - : str("revanced_ryd_shorts_summary_on_disclaimer"); + String shortsSummary = str("revanced_ryd_shorts_summary_on_disclaimer"); shortsPreference.setSummaryOn(shortsSummary); shortsPreference.setSummaryOff(str("revanced_ryd_shorts_summary_off")); shortsPreference.setOnPreferenceChangeListener((pref, newValue) -> { @@ -237,6 +236,8 @@ public class ReturnYouTubeDislikePreferenceFragment extends PreferenceFragment { "revanced_ryd_statistics_getNumberOfRateLimitRequestsEncountered_non_zero_summary")); preferenceScreen.addPreference(statisticPreference); } + + Utils.setPreferenceTitlesToMultiLineIfNeeded(preferenceScreen); } catch (Exception ex) { Logger.printException(() -> "onCreate failure", ex); } diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SponsorBlockPreferenceFragment.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SponsorBlockPreferenceFragment.java index 18cf149dc..751125274 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SponsorBlockPreferenceFragment.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SponsorBlockPreferenceFragment.java @@ -17,6 +17,7 @@ import androidx.annotation.Nullable; import app.revanced.extension.shared.Logger; import app.revanced.extension.shared.Utils; import app.revanced.extension.shared.settings.Setting; +import app.revanced.extension.shared.settings.preference.ResettableEditTextPreference; import app.revanced.extension.youtube.settings.Settings; import app.revanced.extension.youtube.sponsorblock.SegmentPlaybackController; import app.revanced.extension.youtube.sponsorblock.SponsorBlockSettings; @@ -44,8 +45,8 @@ public class SponsorBlockPreferenceFragment extends PreferenceFragment { private SwitchPreference showTimeWithoutSegments; private SwitchPreference toastOnConnectionError; - private EditTextPreference newSegmentStep; - private EditTextPreference minSegmentDuration; + private ResettableEditTextPreference newSegmentStep; + private ResettableEditTextPreference minSegmentDuration; private EditTextPreference privateUserId; private EditTextPreference importExport; private Preference apiUrl; @@ -159,6 +160,8 @@ public class SponsorBlockPreferenceFragment extends PreferenceFragment { addAboutCategory(context, preferenceScreen); + Utils.setPreferenceTitlesToMultiLineIfNeeded(preferenceScreen); + updateUI(); } catch (Exception ex) { Logger.printException(() -> "onCreate failure", ex); @@ -268,7 +271,8 @@ public class SponsorBlockPreferenceFragment extends PreferenceFragment { return true; }); - newSegmentStep = new EditTextPreference(context); + newSegmentStep = new ResettableEditTextPreference(context); + newSegmentStep.setSetting(Settings.SB_CREATE_NEW_SEGMENT_STEP); newSegmentStep.setTitle(str("revanced_sb_general_adjusting")); newSegmentStep.setSummary(str("revanced_sb_general_adjusting_sum")); newSegmentStep.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER); @@ -326,7 +330,8 @@ public class SponsorBlockPreferenceFragment extends PreferenceFragment { }); category.addPreference(trackSkips); - minSegmentDuration = new EditTextPreference(context); + minSegmentDuration = new ResettableEditTextPreference(context); + minSegmentDuration.setSetting(Settings.SB_SEGMENT_MIN_DURATION); minSegmentDuration.setTitle(str("revanced_sb_general_min_duration")); minSegmentDuration.setSummary(str("revanced_sb_general_min_duration_sum")); minSegmentDuration.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL); @@ -345,7 +350,15 @@ public class SponsorBlockPreferenceFragment extends PreferenceFragment { }); category.addPreference(minSegmentDuration); - privateUserId = new EditTextPreference(context); + privateUserId = new EditTextPreference(context) { + protected void onPrepareDialogBuilder(AlertDialog.Builder builder) { + Utils.setEditTextDialogTheme(builder); + + builder.setNeutralButton(str("revanced_sb_settings_copy"), (dialog, which) -> { + Utils.setClipboard(getEditText().getText().toString()); + }); + } + }; privateUserId.setTitle(str("revanced_sb_general_uuid")); privateUserId.setSummary(str("revanced_sb_general_uuid_sum")); privateUserId.setOnPreferenceChangeListener((preference1, newValue) -> { @@ -504,7 +517,7 @@ public class SponsorBlockPreferenceFragment extends PreferenceFragment { if (stats.totalSegmentCountIncludingIgnored > 0) { // If user has not created any segments, there's no reason to set a username. - EditTextPreference preference = new EditTextPreference(context); + EditTextPreference preference = new ResettableEditTextPreference(context); statsCategory.addPreference(preference); String userName = stats.userName; preference.setTitle(fromHtml(str("revanced_sb_stats_username", userName))); diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SpoofStreamingDataSideEffectsPreference.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SpoofStreamingDataSideEffectsPreference.java index a0df8ce07..904103f92 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SpoofStreamingDataSideEffectsPreference.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SpoofStreamingDataSideEffectsPreference.java @@ -73,6 +73,7 @@ public class SpoofStreamingDataSideEffectsPreference extends Preference { if (currentClientType == clientType) { return; } + currentClientType = clientType; Logger.printDebug(() -> "Updating spoof stream side effects preference"); setEnabled(BaseSettings.SPOOF_VIDEO_STREAMS.get()); diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockSettings.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockSettings.java index 45739f267..e8d64fb50 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockSettings.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockSettings.java @@ -136,7 +136,7 @@ public class SponsorBlockSettings { for (SegmentCategory category : categories) { JSONObject categoryObject = new JSONObject(); String categoryKey = category.keyValue; - categoryObject.put("color", category.colorString()); + categoryObject.put("color", category.getColorString()); barTypesObject.put(categoryKey, categoryObject); if (category.behaviour != CategoryBehaviour.IGNORE) { diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockUtils.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockUtils.java index 3fdfe1f9f..5edccbacd 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockUtils.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockUtils.java @@ -5,7 +5,12 @@ import static app.revanced.extension.shared.StringRef.str; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; -import android.text.Html; +import android.graphics.Color; +import android.text.Spannable; +import android.text.SpannableString; +import android.text.SpannableStringBuilder; +import android.text.style.ForegroundColorSpan; +import android.text.style.StyleSpan; import android.widget.EditText; import androidx.annotation.NonNull; @@ -33,7 +38,7 @@ import app.revanced.extension.youtube.sponsorblock.ui.SponsorBlockViewController * Not thread safe. All fields/methods must be accessed from the main thread. */ public class SponsorBlockUtils { - private static final String LOCKED_COLOR = "#FFC83D"; + private static final int LOCKED_COLOR = Color.parseColor("#FFC83D"); private static final String MANUAL_EDIT_TIME_TEXT_HINT = "hh:mm:ss.sss"; private static final Pattern manualEditTimePattern = Pattern.compile("((\\d{1,2}):)?(\\d{1,2}):(\\d{2})(\\.(\\d{1,3}))?"); @@ -160,32 +165,34 @@ public class SponsorBlockUtils { SegmentVote[] voteOptions = (segment.category == SegmentCategory.HIGHLIGHT) ? SegmentVote.voteTypesWithoutCategoryChange // highlight segments cannot change category : SegmentVote.values(); - CharSequence[] items = new CharSequence[voteOptions.length]; + final int voteOptionsLength = voteOptions.length; + final boolean userIsVip = Settings.SB_USER_IS_VIP.get(); + CharSequence[] items = new CharSequence[voteOptionsLength]; - for (int i = 0; i < voteOptions.length; i++) { + for (int i = 0; i < voteOptionsLength; i++) { SegmentVote voteOption = voteOptions[i]; - String title = voteOption.title.toString(); - if (Settings.SB_USER_IS_VIP.get() && segment.isLocked && voteOption.shouldHighlight) { - items[i] = Html.fromHtml(String.format("%s", LOCKED_COLOR, title)); - } else { - items[i] = title; + CharSequence title = voteOption.title.toString(); + if (userIsVip && segment.isLocked && voteOption.highlightIfVipAndVideoIsLocked) { + SpannableString coloredTitle = new SpannableString(title); + coloredTitle.setSpan(new ForegroundColorSpan(LOCKED_COLOR), + 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + title = coloredTitle; } + items[i] = title; } - new AlertDialog.Builder(context) - .setItems(items, (dialog1, which1) -> { - SegmentVote voteOption = voteOptions[which1]; - switch (voteOption) { - case UPVOTE: - case DOWNVOTE: - SBRequester.voteForSegmentOnBackgroundThread(segment, voteOption); - break; - case CATEGORY_CHANGE: - onNewCategorySelect(segment, context); - break; - } - }) - .show(); + new AlertDialog.Builder(context).setItems(items, (dialog1, which1) -> { + SegmentVote voteOption = voteOptions[which1]; + switch (voteOption) { + case UPVOTE: + case DOWNVOTE: + SBRequester.voteForSegmentOnBackgroundThread(segment, voteOption); + break; + case CATEGORY_CHANGE: + onNewCategorySelect(segment, context); + break; + } + }).show(); } catch (Exception ex) { Logger.printException(() -> "segmentVoteClickListener failure", ex); } @@ -282,7 +289,6 @@ public class SponsorBlockUtils { return; } - final int numberOfSegments = segments.length; CharSequence[] titles = new CharSequence[numberOfSegments]; for (int i = 0; i < numberOfSegments; i++) { @@ -290,22 +296,33 @@ public class SponsorBlockUtils { if (segment.category == SegmentCategory.UNSUBMITTED) { continue; } - StringBuilder htmlBuilder = new StringBuilder(); - htmlBuilder.append(String.format(" %s
", - segment.category.color, segment.category.title)); - htmlBuilder.append(formatSegmentTime(segment.start)); - if (segment.category != SegmentCategory.HIGHLIGHT) { - htmlBuilder.append(" to ").append(formatSegmentTime(segment.end)); + + SpannableStringBuilder spannableBuilder = new SpannableStringBuilder(); + + spannableBuilder.append(segment.category.getTitleWithColorDot()); + spannableBuilder.append('\n'); + + String startTime = formatSegmentTime(segment.start); + if (segment.category == SegmentCategory.HIGHLIGHT) { + spannableBuilder.append(startTime); + } else { + String toFromString = str("revanced_sb_vote_segment_time_to_from", + startTime, formatSegmentTime(segment.end)); + spannableBuilder.append(toFromString); } - htmlBuilder.append("
"); - if (i + 1 != numberOfSegments) // prevents trailing new line after last segment - htmlBuilder.append("
"); - titles[i] = Html.fromHtml(htmlBuilder.toString()); + + if (i + 1 != numberOfSegments) { + // prevents trailing new line after last segment + spannableBuilder.append('\n'); + } + + spannableBuilder.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), + 0, spannableBuilder.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + + titles[i] = spannableBuilder; } - new AlertDialog.Builder(context) - .setItems(titles, segmentVoteClickListener) - .show(); + new AlertDialog.Builder(context).setItems(titles, segmentVoteClickListener).show(); } catch (Exception ex) { Logger.printException(() -> "onVotingClicked failure", ex); } diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SegmentCategory.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SegmentCategory.java index 5be3755ae..ec1b1fca5 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SegmentCategory.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SegmentCategory.java @@ -1,13 +1,14 @@ package app.revanced.extension.youtube.sponsorblock.objects; -import static app.revanced.extension.youtube.settings.Settings.*; import static app.revanced.extension.shared.StringRef.sf; +import static app.revanced.extension.youtube.settings.Settings.*; import android.graphics.Color; import android.graphics.Paint; -import android.text.Html; -import android.text.Spanned; +import android.text.Spannable; +import android.text.SpannableString; import android.text.TextUtils; +import android.text.style.ForegroundColorSpan; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -15,43 +16,45 @@ import androidx.annotation.Nullable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Objects; -import app.revanced.extension.shared.Utils; -import app.revanced.extension.shared.settings.StringSetting; -import app.revanced.extension.youtube.settings.Settings; import app.revanced.extension.shared.Logger; import app.revanced.extension.shared.StringRef; +import app.revanced.extension.shared.Utils; +import app.revanced.extension.shared.settings.FloatSetting; +import app.revanced.extension.shared.settings.StringSetting; +import app.revanced.extension.youtube.settings.Settings; public enum SegmentCategory { SPONSOR("sponsor", sf("revanced_sb_segments_sponsor"), sf("revanced_sb_segments_sponsor_sum"), sf("revanced_sb_skip_button_sponsor"), sf("revanced_sb_skipped_sponsor"), - SB_CATEGORY_SPONSOR, SB_CATEGORY_SPONSOR_COLOR), + SB_CATEGORY_SPONSOR, SB_CATEGORY_SPONSOR_COLOR, SB_CATEGORY_SPONSOR_OPACITY), SELF_PROMO("selfpromo", sf("revanced_sb_segments_selfpromo"), sf("revanced_sb_segments_selfpromo_sum"), sf("revanced_sb_skip_button_selfpromo"), sf("revanced_sb_skipped_selfpromo"), - SB_CATEGORY_SELF_PROMO, SB_CATEGORY_SELF_PROMO_COLOR), + SB_CATEGORY_SELF_PROMO, SB_CATEGORY_SELF_PROMO_COLOR, SB_CATEGORY_SELF_PROMO_OPACITY), INTERACTION("interaction", sf("revanced_sb_segments_interaction"), sf("revanced_sb_segments_interaction_sum"), sf("revanced_sb_skip_button_interaction"), sf("revanced_sb_skipped_interaction"), - SB_CATEGORY_INTERACTION, SB_CATEGORY_INTERACTION_COLOR), + SB_CATEGORY_INTERACTION, SB_CATEGORY_INTERACTION_COLOR, SB_CATEGORY_INTERACTION_OPACITY), /** * Unique category that is treated differently than the rest. */ HIGHLIGHT("poi_highlight", sf("revanced_sb_segments_highlight"), sf("revanced_sb_segments_highlight_sum"), sf("revanced_sb_skip_button_highlight"), sf("revanced_sb_skipped_highlight"), - SB_CATEGORY_HIGHLIGHT, SB_CATEGORY_HIGHLIGHT_COLOR), + SB_CATEGORY_HIGHLIGHT, SB_CATEGORY_HIGHLIGHT_COLOR, SB_CATEGORY_HIGHLIGHT_OPACITY), INTRO("intro", sf("revanced_sb_segments_intro"), sf("revanced_sb_segments_intro_sum"), sf("revanced_sb_skip_button_intro_beginning"), sf("revanced_sb_skip_button_intro_middle"), sf("revanced_sb_skip_button_intro_end"), sf("revanced_sb_skipped_intro_beginning"), sf("revanced_sb_skipped_intro_middle"), sf("revanced_sb_skipped_intro_end"), - SB_CATEGORY_INTRO, SB_CATEGORY_INTRO_COLOR), + SB_CATEGORY_INTRO, SB_CATEGORY_INTRO_COLOR, SB_CATEGORY_INTRO_OPACITY), OUTRO("outro", sf("revanced_sb_segments_outro"), sf("revanced_sb_segments_outro_sum"), sf("revanced_sb_skip_button_outro"), sf("revanced_sb_skipped_outro"), - SB_CATEGORY_OUTRO, SB_CATEGORY_OUTRO_COLOR), + SB_CATEGORY_OUTRO, SB_CATEGORY_OUTRO_COLOR, SB_CATEGORY_OUTRO_OPACITY), PREVIEW("preview", sf("revanced_sb_segments_preview"), sf("revanced_sb_segments_preview_sum"), sf("revanced_sb_skip_button_preview_beginning"), sf("revanced_sb_skip_button_preview_middle"), sf("revanced_sb_skip_button_preview_end"), sf("revanced_sb_skipped_preview_beginning"), sf("revanced_sb_skipped_preview_middle"), sf("revanced_sb_skipped_preview_end"), - SB_CATEGORY_PREVIEW, SB_CATEGORY_PREVIEW_COLOR), + SB_CATEGORY_PREVIEW, SB_CATEGORY_PREVIEW_COLOR, SB_CATEGORY_PREVIEW_OPACITY), FILLER("filler", sf("revanced_sb_segments_filler"), sf("revanced_sb_segments_filler_sum"), sf("revanced_sb_skip_button_filler"), sf("revanced_sb_skipped_filler"), - SB_CATEGORY_FILLER, SB_CATEGORY_FILLER_COLOR), + SB_CATEGORY_FILLER, SB_CATEGORY_FILLER_COLOR, SB_CATEGORY_FILLER_OPACITY), MUSIC_OFFTOPIC("music_offtopic", sf("revanced_sb_segments_nomusic"), sf("revanced_sb_segments_nomusic_sum"), sf("revanced_sb_skip_button_nomusic"), sf("revanced_sb_skipped_nomusic"), - SB_CATEGORY_MUSIC_OFFTOPIC, SB_CATEGORY_MUSIC_OFFTOPIC_COLOR), + SB_CATEGORY_MUSIC_OFFTOPIC, SB_CATEGORY_MUSIC_OFFTOPIC_COLOR, SB_CATEGORY_MUSIC_OFFTOPIC_OPACITY), UNSUBMITTED("unsubmitted", StringRef.empty, StringRef.empty, sf("revanced_sb_skip_button_unsubmitted"), sf("revanced_sb_skipped_unsubmitted"), - SB_CATEGORY_UNSUBMITTED, SB_CATEGORY_UNSUBMITTED_COLOR),; + SB_CATEGORY_UNSUBMITTED, SB_CATEGORY_UNSUBMITTED_COLOR, SB_CATEGORY_UNSUBMITTED_OPACITY); private static final StringRef skipSponsorTextCompact = sf("revanced_sb_skip_button_compact"); private static final StringRef skipSponsorTextCompactHighlight = sf("revanced_sb_skip_button_compact_highlight"); @@ -90,12 +93,10 @@ public enum SegmentCategory { mValuesMap.put(value.keyValue, value); } - @NonNull public static SegmentCategory[] categoriesWithoutUnsubmitted() { return categoriesWithoutUnsubmitted; } - @NonNull public static SegmentCategory[] categoriesWithoutHighlights() { return categoriesWithoutHighlights; } @@ -106,7 +107,7 @@ public enum SegmentCategory { } /** - * Must be called if behavior of any category is changed + * Must be called if behavior of any category is changed. */ public static void updateEnabledCategories() { Utils.verifyOnMainThread(); @@ -133,32 +134,33 @@ public enum SegmentCategory { updateEnabledCategories(); } - @NonNull - public final String keyValue; - @NonNull - public final StringSetting behaviorSetting; - @NonNull - private final StringSetting colorSetting; + public static int applyOpacityToColor(int color, float opacity) { + if (opacity < 0 || opacity > 1.0f) { + throw new IllegalArgumentException("Invalid opacity: " + opacity); + } + final int opacityInt = (int) (255 * opacity); + return (color & 0x00FFFFFF) | (opacityInt << 24); + } + + public final String keyValue; + public final StringSetting behaviorSetting; // TODO: Replace with EnumSetting. + private final StringSetting colorSetting; + private final FloatSetting opacitySetting; - @NonNull public final StringRef title; - @NonNull public final StringRef description; /** * Skip button text, if the skip occurs in the first quarter of the video */ - @NonNull public final StringRef skipButtonTextBeginning; /** * Skip button text, if the skip occurs in the middle half of the video */ - @NonNull public final StringRef skipButtonTextMiddle; /** * Skip button text, if the skip occurs in the last quarter of the video */ - @NonNull public final StringRef skipButtonTextEnd; /** * Skipped segment toast, if the skip occurred in the first quarter of the video @@ -179,10 +181,7 @@ public enum SegmentCategory { @NonNull public final Paint paint; - /** - * Value must be changed using {@link #setColor(String)}. - */ - public int color; + private int color; /** * Value must be changed using {@link #setBehaviour(CategoryBehaviour)}. @@ -194,17 +193,20 @@ public enum SegmentCategory { SegmentCategory(String keyValue, StringRef title, StringRef description, StringRef skipButtonText, StringRef skippedToastText, - StringSetting behavior, StringSetting color) { + StringSetting behavior, + StringSetting color, FloatSetting opacity) { this(keyValue, title, description, skipButtonText, skipButtonText, skipButtonText, skippedToastText, skippedToastText, skippedToastText, - behavior, color); + behavior, + color, opacity); } SegmentCategory(String keyValue, StringRef title, StringRef description, StringRef skipButtonTextBeginning, StringRef skipButtonTextMiddle, StringRef skipButtonTextEnd, StringRef skippedToastBeginning, StringRef skippedToastMiddle, StringRef skippedToastEnd, - StringSetting behavior, StringSetting color) { + StringSetting behavior, + StringSetting color, FloatSetting opacity) { this.keyValue = Objects.requireNonNull(keyValue); this.title = Objects.requireNonNull(title); this.description = Objects.requireNonNull(description); @@ -216,6 +218,7 @@ public enum SegmentCategory { this.skippedToastEnd = Objects.requireNonNull(skippedToastEnd); this.behaviorSetting = Objects.requireNonNull(behavior); this.colorSetting = Objects.requireNonNull(color); + this.opacitySetting = Objects.requireNonNull(opacity); this.paint = new Paint(); loadFromSettings(); } @@ -232,11 +235,14 @@ public enum SegmentCategory { this.behaviour = savedBehavior; String colorString = colorSetting.get(); + final float opacity = opacitySetting.get(); try { setColor(colorString); + setOpacity(opacity); } catch (Exception ex) { - Logger.printException(() -> "Invalid color: " + colorString, ex); + Logger.printException(() -> "Invalid color: " + colorString + " opacity: " + opacity, ex); colorSetting.resetToDefault(); + opacitySetting.resetToDefault(); loadFromSettings(); } } @@ -245,45 +251,78 @@ public enum SegmentCategory { this.behaviour = Objects.requireNonNull(behaviour); this.behaviorSetting.save(behaviour.reVancedKeyValue); } - /** - * @return HTML color format string - */ - @NonNull - public String colorString() { - return String.format("#%06X", color); - } - public void setColor(@NonNull String colorString) throws IllegalArgumentException { - final int color = Color.parseColor(colorString) & 0xFFFFFF; - this.color = color; + private void updateColor() { + color = applyOpacityToColor(color, opacitySetting.get()); paint.setColor(color); - paint.setAlpha(255); - colorSetting.save(colorString); // Save after parsing. } - public void resetColor() { + /** + * @param opacity Segment color opacity between [0, 1]. + */ + public void setOpacity(float opacity) throws IllegalArgumentException { + if (opacity < 0 || opacity > 1) { + throw new IllegalArgumentException("Invalid opacity: " + opacity); + } + + opacitySetting.save(opacity); + updateColor(); + } + + public float getOpacity() { + return opacitySetting.get(); + } + + public void resetColorAndOpacity() { setColor(colorSetting.defaultValue); + setOpacity(opacitySetting.defaultValue); } - @NonNull - private static String getCategoryColorDotHTML(int color) { - color &= 0xFFFFFF; - return String.format("", color); + /** + * @param colorString Segment color with #RRGGBB format. + */ + public void setColor(String colorString) throws IllegalArgumentException { + color = Color.parseColor(colorString); + colorSetting.save(colorString); + + updateColor(); } - @NonNull - public static Spanned getCategoryColorDot(int color) { - return Html.fromHtml(getCategoryColorDotHTML(color)); + /** + * @return Integer color of #RRGGBB format. + */ + public int getColorNoOpacity() { + return color & 0x00FFFFFF; } - @NonNull - public Spanned getCategoryColorDot() { + /** + * @return Hex color string of #RRGGBB format with no opacity level. + */ + public String getColorString() { + return String.format(Locale.US, "#%06X", getColorNoOpacity()); + } + + private static SpannableString getCategoryColorDotSpan(String text, int color) { + SpannableString dotSpan = new SpannableString('⬤' + text); + dotSpan.setSpan(new ForegroundColorSpan(color), 0, 1, + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + return dotSpan; + } + + public static SpannableString getCategoryColorDot(int color) { + return getCategoryColorDotSpan("", color); + } + + public SpannableString getCategoryColorDot() { return getCategoryColorDot(color); } - @NonNull - public Spanned getTitleWithColorDot() { - return Html.fromHtml(getCategoryColorDotHTML(color) + " " + title); + public SpannableString getTitleWithColorDot(int categoryColor) { + return getCategoryColorDotSpan(" " + title, categoryColor); + } + + public SpannableString getTitleWithColorDot() { + return getTitleWithColorDot(color); } /** @@ -291,7 +330,6 @@ public enum SegmentCategory { * @param videoLength length of the video * @return the skip button text */ - @NonNull StringRef getSkipButtonText(long segmentStartTime, long videoLength) { if (Settings.SB_COMPACT_SKIP_BUTTON.get()) { return (this == SegmentCategory.HIGHLIGHT) @@ -300,7 +338,7 @@ public enum SegmentCategory { } if (videoLength == 0) { - return skipButtonTextBeginning; // video is still loading. Assume it's the beginning + return skipButtonTextBeginning; // Video is still loading. Assume it's the beginning. } final float position = segmentStartTime / (float) videoLength; if (position < 0.25f) { @@ -316,10 +354,9 @@ public enum SegmentCategory { * @param videoLength length of the video * @return 'skipped segment' toast message */ - @NonNull StringRef getSkippedToastText(long segmentStartTime, long videoLength) { if (videoLength == 0) { - return skippedToastBeginning; // video is still loading. Assume it's the beginning + return skippedToastBeginning; // Video is still loading. Assume it's the beginning. } final float position = segmentStartTime / (float) videoLength; if (position < 0.25f) { diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SegmentCategoryListPreference.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SegmentCategoryListPreference.java index ec83d9122..ae92caaff 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SegmentCategoryListPreference.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SegmentCategoryListPreference.java @@ -1,6 +1,7 @@ package app.revanced.extension.youtube.sponsorblock.objects; import static app.revanced.extension.shared.StringRef.str; +import static app.revanced.extension.youtube.sponsorblock.objects.SegmentCategory.applyOpacityToColor; import android.app.AlertDialog; import android.content.Context; @@ -11,11 +12,10 @@ import android.text.Editable; import android.text.InputType; import android.text.TextWatcher; import android.widget.EditText; -import android.widget.LinearLayout; -import android.widget.TableLayout; -import android.widget.TableRow; +import android.widget.GridLayout; import android.widget.TextView; +import java.util.Locale; import java.util.Objects; import app.revanced.extension.shared.Logger; @@ -24,27 +24,38 @@ import app.revanced.extension.shared.Utils; @SuppressWarnings("deprecation") public class SegmentCategoryListPreference extends ListPreference { private final SegmentCategory category; - private EditText mEditText; - private int mClickedDialogEntryIndex; + private TextView colorDotView; + private EditText colorEditText; + private EditText opacityEditText; + /** + * #RRGGBB + */ + private int categoryColor; + /** + * [0, 1] + */ + private float categoryOpacity; + private int selectedDialogEntryIndex; public SegmentCategoryListPreference(Context context, SegmentCategory category) { super(context); - final boolean isHighlightCategory = category == SegmentCategory.HIGHLIGHT; this.category = Objects.requireNonNull(category); // Edit: Using preferences to sync together multiple pieces - // of code together is messy and should be rethought. + // of code is messy and should be rethought. setKey(category.behaviorSetting.key); setDefaultValue(category.behaviorSetting.defaultValue); + + final boolean isHighlightCategory = category == SegmentCategory.HIGHLIGHT; setEntries(isHighlightCategory ? CategoryBehaviour.getBehaviorDescriptionsWithoutSkipOnce() : CategoryBehaviour.getBehaviorDescriptions()); setEntryValues(isHighlightCategory ? CategoryBehaviour.getBehaviorKeyValuesWithoutSkipOnce() : CategoryBehaviour.getBehaviorKeyValues()); - setSummary(category.description.toString()); - updateTitle(); + + updateTitleFromCategory(); } @Override @@ -52,26 +63,40 @@ public class SegmentCategoryListPreference extends ListPreference { try { Utils.setEditTextDialogTheme(builder); + categoryColor = category.getColorNoOpacity(); + categoryOpacity = category.getOpacity(); + Context context = builder.getContext(); - TableLayout table = new TableLayout(context); - table.setOrientation(LinearLayout.HORIZONTAL); - table.setPadding(70, 0, 150, 0); - - TableRow row = new TableRow(context); + GridLayout gridLayout = new GridLayout(context); + gridLayout.setPadding(70, 0, 150, 0); // Padding for the entire layout. + gridLayout.setColumnCount(3); + gridLayout.setRowCount(2); + GridLayout.LayoutParams gridParams = new GridLayout.LayoutParams(); + gridParams.rowSpec = GridLayout.spec(0); // First row. + gridParams.columnSpec = GridLayout.spec(0); // First column. TextView colorTextLabel = new TextView(context); colorTextLabel.setText(str("revanced_sb_color_dot_label")); - row.addView(colorTextLabel); + colorTextLabel.setLayoutParams(gridParams); + gridLayout.addView(colorTextLabel); - TextView colorDotView = new TextView(context); - colorDotView.setText(category.getCategoryColorDot()); - colorDotView.setPadding(30, 0, 30, 0); - row.addView(colorDotView); + gridParams = new GridLayout.LayoutParams(); + gridParams.rowSpec = GridLayout.spec(0); // First row. + gridParams.columnSpec = GridLayout.spec(1); // Second column. + gridParams.setMargins(0, 0, 10, 0); + colorDotView = new TextView(context); + colorDotView.setLayoutParams(gridParams); + gridLayout.addView(colorDotView); + updateCategoryColorDot(); - mEditText = new EditText(context); - mEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS); - mEditText.setText(category.colorString()); - mEditText.addTextChangedListener(new TextWatcher() { + gridParams = new GridLayout.LayoutParams(); + gridParams.rowSpec = GridLayout.spec(0); // First row. + gridParams.columnSpec = GridLayout.spec(2); // Third column. + colorEditText = new EditText(context); + colorEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS); + colorEditText.setTextLocale(Locale.US); + colorEditText.setText(category.getColorString()); + colorEditText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @@ -81,29 +106,94 @@ public class SegmentCategoryListPreference extends ListPreference { } @Override - public void afterTextChanged(Editable s) { + public void afterTextChanged(Editable edit) { try { - String colorString = s.toString(); + String colorString = edit.toString(); + final int colorStringLength = colorString.length(); + if (!colorString.startsWith("#")) { - s.insert(0, "#"); // recursively calls back into this method + edit.insert(0, "#"); // Recursively calls back into this method. return; } - if (colorString.length() > 7) { - s.delete(7, colorString.length()); + + final int maxColorStringLength = 7; // #RRGGBB + if (colorStringLength > maxColorStringLength) { + edit.delete(maxColorStringLength, colorStringLength); return; } - final int color = Color.parseColor(colorString); - colorDotView.setText(SegmentCategory.getCategoryColorDot(color)); + + categoryColor = Color.parseColor(colorString); + updateCategoryColorDot(); } catch (IllegalArgumentException ex) { - // ignore + // Ignore. } } }); - mEditText.setLayoutParams(new TableRow.LayoutParams(0, TableRow.LayoutParams.WRAP_CONTENT, 1f)); - row.addView(mEditText); + colorEditText.setLayoutParams(gridParams); + gridLayout.addView(colorEditText); - table.addView(row); - builder.setView(table); + gridParams = new GridLayout.LayoutParams(); + gridParams.rowSpec = GridLayout.spec(1); // Second row. + gridParams.columnSpec = GridLayout.spec(0, 1); // First and second column. + TextView opacityLabel = new TextView(context); + opacityLabel.setText(str("revanced_sb_color_opacity_label")); + opacityLabel.setLayoutParams(gridParams); + gridLayout.addView(opacityLabel); + + gridParams = new GridLayout.LayoutParams(); + gridParams.rowSpec = GridLayout.spec(1); // Second row. + gridParams.columnSpec = GridLayout.spec(2); // Third column. + opacityEditText = new EditText(context); + opacityEditText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL); + opacityEditText.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + } + + @Override + public void afterTextChanged(Editable edit) { + try { + String editString = edit.toString(); + final int opacityStringLength = editString.length(); + + final int maxOpacityStringLength = 4; // [0.00, 1.00] + if (opacityStringLength > maxOpacityStringLength) { + edit.delete(maxOpacityStringLength, opacityStringLength); + return; + } + + final float opacity = opacityStringLength == 0 + ? 0 + : Float.parseFloat(editString); + if (opacity < 0) { + categoryOpacity = 0; + edit.replace(0, opacityStringLength, "0"); + return; + } else if (opacity > 1.0f) { + categoryOpacity = 1; + edit.replace(0, opacityStringLength, "1.0"); + return; + } else if (!editString.endsWith(".")) { + // Ignore "0." and "1." until the user finishes entering a valid number. + categoryOpacity = opacity; + } + + updateCategoryColorDot(); + } catch (NumberFormatException ex) { + // Should never happen. + Logger.printException(() -> "Could not parse opacity string", ex); + } + } + }); + opacityEditText.setLayoutParams(gridParams); + gridLayout.addView(opacityEditText); + updateOpacityText(); + + builder.setView(gridLayout); builder.setTitle(category.title.toString()); builder.setPositiveButton(android.R.string.ok, (dialog, which) -> { @@ -111,8 +201,8 @@ public class SegmentCategoryListPreference extends ListPreference { }); builder.setNeutralButton(str("revanced_sb_reset_color"), (dialog, which) -> { try { - category.resetColor(); - updateTitle(); + category.resetColorAndOpacity(); + updateTitleFromCategory(); Utils.showToastShort(str("revanced_sb_color_reset")); } catch (Exception ex) { Logger.printException(() -> "setNeutralButton failure", ex); @@ -120,8 +210,9 @@ public class SegmentCategoryListPreference extends ListPreference { }); builder.setNegativeButton(android.R.string.cancel, null); - mClickedDialogEntryIndex = findIndexOfValue(getValue()); - builder.setSingleChoiceItems(getEntries(), mClickedDialogEntryIndex, (dialog, which) -> mClickedDialogEntryIndex = which); + selectedDialogEntryIndex = findIndexOfValue(getValue()); + builder.setSingleChoiceItems(getEntries(), selectedDialogEntryIndex, + (dialog, which) -> selectedDialogEntryIndex = which); } catch (Exception ex) { Logger.printException(() -> "onPrepareDialogBuilder failure", ex); } @@ -130,30 +221,51 @@ public class SegmentCategoryListPreference extends ListPreference { @Override protected void onDialogClosed(boolean positiveResult) { try { - if (positiveResult && mClickedDialogEntryIndex >= 0 && getEntryValues() != null) { - String value = getEntryValues()[mClickedDialogEntryIndex].toString(); + if (positiveResult && selectedDialogEntryIndex >= 0 && getEntryValues() != null) { + String value = getEntryValues()[selectedDialogEntryIndex].toString(); if (callChangeListener(value)) { setValue(value); category.setBehaviour(Objects.requireNonNull(CategoryBehaviour.byReVancedKeyValue(value))); SegmentCategory.updateEnabledCategories(); } - String colorString = mEditText.getText().toString(); + try { - if (!colorString.equals(category.colorString())) { + String colorString = colorEditText.getText().toString(); + if (!colorString.equals(category.getColorString()) || categoryOpacity != category.getOpacity()) { category.setColor(colorString); + category.setOpacity(categoryOpacity); Utils.showToastShort(str("revanced_sb_color_changed")); } } catch (IllegalArgumentException ex) { Utils.showToastShort(str("revanced_sb_color_invalid")); } - updateTitle(); + + updateTitleFromCategory(); } } catch (Exception ex) { Logger.printException(() -> "onDialogClosed failure", ex); } } - private void updateTitle() { - setTitle(category.getTitleWithColorDot()); + private void applyOpacityToCategoryColor() { + categoryColor = applyOpacityToColor(categoryColor, categoryOpacity); + } + + private void updateTitleFromCategory() { + categoryColor = category.getColorNoOpacity(); + categoryOpacity = category.getOpacity(); + applyOpacityToCategoryColor(); + + setTitle(category.getTitleWithColorDot(categoryColor)); + } + + private void updateCategoryColorDot() { + applyOpacityToCategoryColor(); + + colorDotView.setText(SegmentCategory.getCategoryColorDot(categoryColor)); + } + + private void updateOpacityText() { + opacityEditText.setText(String.format(Locale.US, "%.2f", categoryOpacity)); } } \ No newline at end of file diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SponsorSegment.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SponsorSegment.java index 811cb87c4..375de16b5 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SponsorSegment.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SponsorSegment.java @@ -23,12 +23,15 @@ public class SponsorSegment implements Comparable { @NonNull public final StringRef title; public final int apiVoteType; - public final boolean shouldHighlight; + /** + * If the option should be highlighted for VIP users. + */ + public final boolean highlightIfVipAndVideoIsLocked; - SegmentVote(@NonNull StringRef title, int apiVoteType, boolean shouldHighlight) { + SegmentVote(@NonNull StringRef title, int apiVoteType, boolean highlightIfVipAndVideoIsLocked) { this.title = title; this.apiVoteType = apiVoteType; - this.shouldHighlight = shouldHighlight; + this.highlightIfVipAndVideoIsLocked = highlightIfVipAndVideoIsLocked; } } diff --git a/gradle.properties b/gradle.properties index 96e5f14a3..e82ac9a41 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M org.gradle.parallel = true android.useAndroidX = true kotlin.code.style = official -version = 5.14.0 +version = 5.15.0-dev.4 diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/Fingerprints.kt index 2dd73ecc4..23abbd2b1 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/Fingerprints.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/Fingerprints.kt @@ -98,20 +98,6 @@ internal val rollingNumberTextViewFingerprint = fingerprint { } } -internal val shortsTextViewFingerprint = fingerprint { - accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL) - returns("V") - parameters("L", "L") - opcodes( - Opcode.INVOKE_SUPER, // first instruction of method - Opcode.IF_NEZ, - null, - Opcode.INVOKE_VIRTUAL, - Opcode.MOVE_RESULT_OBJECT, - Opcode.CHECK_CAST, - ) -} - internal val textComponentConstructorFingerprint = fingerprint { accessFlags(AccessFlags.CONSTRUCTOR, AccessFlags.PRIVATE) strings("TextComponent") diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikePatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikePatch.kt index 84d48468a..037f0875c 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikePatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikePatch.kt @@ -1,9 +1,7 @@ package app.revanced.patches.youtube.layout.returnyoutubedislike import app.revanced.patcher.extensions.InstructionExtensions.addInstructions -import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels import app.revanced.patcher.extensions.InstructionExtensions.getInstruction -import app.revanced.patcher.extensions.InstructionExtensions.instructions import app.revanced.patcher.patch.PatchException import app.revanced.patcher.patch.bytecodePatch import app.revanced.patches.all.misc.resources.addResources @@ -169,51 +167,7 @@ val returnYouTubeDislikePatch = bytecodePatch( // endregion - // region Hook for non-litho Short videos. - shortsTextViewFingerprint.method.apply { - val insertIndex = shortsTextViewFingerprint.patternMatch!!.endIndex + 1 - - // If the field is true, the TextView is for a dislike button. - val isDisLikesBooleanInstruction = instructions.first { instruction -> - instruction.opcode == Opcode.IGET_BOOLEAN - } as ReferenceInstruction - - val isDisLikesBooleanReference = isDisLikesBooleanInstruction.reference - - // Like/Dislike button TextView field. - val textViewFieldInstruction = instructions.first { instruction -> - instruction.opcode == Opcode.IGET_OBJECT - } as ReferenceInstruction - - val textViewFieldReference = textViewFieldInstruction.reference - - // Check if the hooked TextView object is that of the dislike button. - // If RYD is disabled, or the TextView object is not that of the dislike button, the execution flow is not interrupted. - // Otherwise, the TextView object is modified, and the execution flow is interrupted to prevent it from being changed afterward. - addInstructionsWithLabels( - insertIndex, - """ - # Check, if the TextView is for a dislike button - iget-boolean v0, p0, $isDisLikesBooleanReference - if-eqz v0, :is_like - - # Hook the TextView, if it is for the dislike button - iget-object v0, p0, $textViewFieldReference - invoke-static {v0}, $EXTENSION_CLASS_DESCRIPTOR->setShortsDislikes(Landroid/view/View;)Z - move-result v0 - if-eqz v0, :ryd_disabled - return-void - - :is_like - :ryd_disabled - nop - """, - ) - } - - // endregion - - // region Hook for litho Shorts + // region Hook Shorts // Filter that parses the video id from the UI addLithoFilter(FILTER_CLASS_DESCRIPTOR) @@ -255,22 +209,25 @@ val returnYouTubeDislikePatch = bytecodePatch( ) } - // Rolling Number text views use the measured width of the raw string for layout. - // Modify the measure text calculation to include the left drawable separator if needed. - val patternMatch = rollingNumberMeasureAnimatedTextFingerprint.patternMatch!! - // Additional check to verify the opcodes are at the start of the method - if (patternMatch.startIndex != 0) throw PatchException("Unexpected opcode location") - val endIndex = patternMatch.endIndex - rollingNumberMeasureAnimatedTextFingerprint.method.apply { - val measuredTextWidthRegister = getInstruction(endIndex).registerA + rollingNumberMeasureAnimatedTextFingerprint.let { + // Rolling Number text views use the measured width of the raw string for layout. + // Modify the measure text calculation to include the left drawable separator if needed. + val patternMatch = it.patternMatch!! + // Verify the opcodes are at the start of the method. + if (patternMatch.startIndex != 0) throw PatchException("Unexpected opcode location") + val endIndex = patternMatch.endIndex - addInstructions( - endIndex + 1, - """ - invoke-static {p1, v$measuredTextWidthRegister}, $EXTENSION_CLASS_DESCRIPTOR->onRollingNumberMeasured(Ljava/lang/String;F)F - move-result v$measuredTextWidthRegister - """, - ) + it.method.apply { + val measuredTextWidthRegister = getInstruction(endIndex).registerA + + addInstructions( + endIndex + 1, + """ + invoke-static {p1, v$measuredTextWidthRegister}, $EXTENSION_CLASS_DESCRIPTOR->onRollingNumberMeasured(Ljava/lang/String;F)F + move-result v$measuredTextWidthRegister + """ + ) + } } // Additional text measurement method. Used if YouTube decides not to animate the likes count @@ -291,15 +248,14 @@ val returnYouTubeDislikePatch = bytecodePatch( ) } } - // The rolling number Span is missing styling since it's initially set as a String. - // Modify the UI text view and use the styled like/dislike Span. - // Initial TextView is set in this method. - val initiallyCreatedTextViewMethod = rollingNumberTextViewFingerprint.method - // Videos less than 24 hours after uploaded, like counts will be updated in real time. - // Whenever like counts are updated, TextView is set in this method. arrayOf( - initiallyCreatedTextViewMethod, + // The rolling number Span is missing styling since it's initially set as a String. + // Modify the UI text view and use the styled like/dislike Span. + // Initial TextView is set in this method. + rollingNumberTextViewFingerprint.method, + // Videos less than 24 hours after uploaded, like counts will be updated in real time. + // Whenever like counts are updated, TextView is set in this method. rollingNumberTextViewAnimationUpdateFingerprint.method, ).forEach { insertMethod -> insertMethod.apply { @@ -315,9 +271,9 @@ val returnYouTubeDislikePatch = bytecodePatch( addInstructions( setTextIndex, """ - invoke-static {v$textViewRegister, v$textSpanRegister}, $EXTENSION_CLASS_DESCRIPTOR->updateRollingNumber(Landroid/widget/TextView;Ljava/lang/CharSequence;)Ljava/lang/CharSequence; - move-result-object v$textSpanRegister - """, + invoke-static {v$textViewRegister, v$textSpanRegister}, $EXTENSION_CLASS_DESCRIPTOR->updateRollingNumber(Landroid/widget/TextView;Ljava/lang/CharSequence;)Ljava/lang/CharSequence; + move-result-object v$textSpanRegister + """ ) } } diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch.kt index 0deffb506..66f15c0c3 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch.kt @@ -16,7 +16,7 @@ import app.revanced.patches.shared.misc.settings.preference.PreferenceCategory import app.revanced.patches.shared.misc.settings.preference.PreferenceScreenPreference.Sorting import app.revanced.patches.shared.misc.settings.preference.SwitchPreference 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.is_19_43_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 @@ -46,8 +46,7 @@ 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. " + - "Patching 19.16.39 includes additional older spoofing targets.", + "This can be used to restore old UI elements and features." ) { dependsOn( spoofAppVersionResourcePatch, @@ -60,8 +59,8 @@ val spoofAppVersionPatch = bytecodePatch( compatibleWith( "com.google.android.youtube"( "19.16.39", - // "19.25.37", // Cannot be supported because the lowest spoof target is higher. - // "19.34.42", // Cannot be supported because the lowest spoof target is higher. + "19.25.37", + "19.34.42", "19.43.41", "19.45.38", "19.46.42", @@ -81,7 +80,7 @@ val spoofAppVersionPatch = bytecodePatch( tag = "app.revanced.extension.shared.settings.preference.NoTitlePreferenceCategory", preferences = setOf( SwitchPreference("revanced_spoof_app_version"), - if (is_19_17_or_greater) { + if (is_19_43_or_greater) { ListPreference( key = "revanced_spoof_app_version_target", summaryKey = null, @@ -99,10 +98,9 @@ val spoofAppVersionPatch = bytecodePatch( ) /** - * If a user really wants to spoof to very old versions with the latest app target - * they can modify the import/export spoof version. But when spoofing the 19.20.xx - * or earlier the Library tab can crash due to missing image resources trying to load. - * As a temporary workaround, do not set an image in the toolbar when the enum name is UNKNOWN. + * If spoofing to target 19.20 or earlier the Library tab can crash due to + * missing image resources. As a workaround, do not set an image in the + * toolbar when the enum name is UNKNOWN. */ toolBarButtonFingerprint.method.apply { val getDrawableIndex = indexOfGetDrawableInstruction(this) diff --git a/patches/src/main/resources/addresources/values-af-rZA/strings.xml b/patches/src/main/resources/addresources/values-af-rZA/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-af-rZA/strings.xml +++ b/patches/src/main/resources/addresources/values-af-rZA/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-am-rET/strings.xml b/patches/src/main/resources/addresources/values-am-rET/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-am-rET/strings.xml +++ b/patches/src/main/resources/addresources/values-am-rET/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-ar-rSA/strings.xml b/patches/src/main/resources/addresources/values-ar-rSA/strings.xml index 7a7c49639..63e7ee25e 100644 --- a/patches/src/main/resources/addresources/values-ar-rSA/strings.xml +++ b/patches/src/main/resources/addresources/values-ar-rSA/strings.xml @@ -805,7 +805,6 @@ Second \"item\" text" يتم عرض لم يعجبني لا يتم عرض لم يعجبني عرض لم يعجني في فيديوهات Shorts - يتم عرض عدم الإعجاب على فيديوهات Shorts "يتم عرض مرات عدم الإعجاب في فيديوهات Shorts التقييد: قد لا تظهر مرات عدم الإعجاب في وضع التصفح المتخفي" @@ -1003,6 +1002,8 @@ Second \"item\" text" اعتراض تغيير الفئة لا توجد مقاطع للتصويت عليها + + %1$s إلى %2$s اختيار فئة المقطع الفئة معطلة في الإعدادات. تمكين الفئة للإرسال. مقطع SponsorBlock جديد @@ -1050,6 +1051,7 @@ Second \"item\" text" %1$s ساعة %2$s دقيقة %1$s دقيقة %2$s ثانية %s ثانية + الشفافية: اللون: تم تغيير اللون إعادة ضبط اللون @@ -1087,12 +1089,7 @@ Second \"item\" text" 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 --> الهدف من تغيير إصدار التطبيق 19.35.36 - استعادة أيقونات مشغل Shorts القديمة - 19.26.42 - استعادة أيقونات التنقل القديمة - - 18.33.40 - استعادة RYD على Shorts بوضع التخفي - 18.20.39 - استعادة قائمة سرعة الفيديو العريضة & الجودة - 18.09.39 - استعادة علامة تبويب المكتبة - 17.33.42 - استعادة رف قائمة التشغيل القديم + 19.01.34 - استعادة أيقونات التنقل القديمة تعيين صفحة البداية diff --git a/patches/src/main/resources/addresources/values-as-rIN/strings.xml b/patches/src/main/resources/addresources/values-as-rIN/strings.xml index d7ed7c43d..6558a7b83 100644 --- a/patches/src/main/resources/addresources/values-as-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-as-rIN/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-az-rAZ/strings.xml b/patches/src/main/resources/addresources/values-az-rAZ/strings.xml index b59c44bb9..51c66f5f0 100644 --- a/patches/src/main/resources/addresources/values-az-rAZ/strings.xml +++ b/patches/src/main/resources/addresources/values-az-rAZ/strings.xml @@ -227,12 +227,12 @@ Gözlənilməz hallardan xəbərdar olmayacaqsınız." Sənətçi kartları gizlidir Sənətçi kartları göstərilir Atributları Gizlət - Seçilən məkanlar, Oyunlar, Musiqi və qeyd edilən insanlar bölmələri gizlədilir - Seçilən məkanlar, Oyunlar, Musiqi və qeyd edilən insanlar bölmələri görünür + Seçilən yerlər, Oyunlar, Musiqi və qeyd edilən insanlar bölmələri gizlədilir + Seçilən yerlər, Oyunlar, Musiqi və qeyd edilən insanlar bölmələri görünür Fəsilləri Gizlət Bölümlər bölməsi gizlidir Bölümlər bölməsi göstərilir - \'Bu məzmun necə hazırlanıb\'ı Gizlət + \'Bu kontent necə hazırlanıb\'ı Gizlət Bu məzmunun necə hazırlandığı bölməsi gizlidir Bu məzmunun necə hazırlandığı bölməsi görünür \'Podkastı araşdırın\"-ı Gizlət @@ -241,14 +241,14 @@ Gözlənilməz hallardan xəbərdar olmayacaqsınız." Məlumat Kartlarını Gizlət Məlumat kartları bölməsi gizlədilir Məlumat kartları bölməsi göstərilir - \"Əsas anlayışları\" gizlət - Əsas anlayışlar bölməsi gizlidir - Əsas anlayışlar bölməsi görünür + \"Əsas konseptlər-i\" gizlət + Əsas konseptlər bölməsi gizlidir + Əsas konseptlər bölməsi görünür Transkript-i Gizlət Transkripsiya bölməsi gizlidir Transkripsiya bölməsi göstərilir - Video açıqlaması - Video açıqlaması elementlərini gizlət və ya göstər + Video təsviri + Video təsviri elementlərini gizlət və ya göstər Filtr çubuğu Axında, axtarış nəticələrində və əlaqəli videolarda filtr cərgəsin gizlət və ya göstər Axında gizlət @@ -804,7 +804,6 @@ Avtomatik oynatma YouTube ayarlarında dəyişdirilə bilər: Ayarlar → Oxunu Bəyənməmələr göstərilir Bəyənməmələr göstərilmir \"Shorts\"da bəyənməmə sayını göstər - Bəyənməmələr Shorts-da göstərilir "Bəyənməmələr Shorts-da göstərilir Məhdudiyyət: Bəyənməmələr gizli rejimdə görünməyə bilər" @@ -1002,6 +1001,8 @@ Artıq mövcuddur" Mənfi səs Kateqoriyanı dəyişdir Səsvermə üçün bölüm yoxdur + + %1$s - %2$s Bölüm kateqoriyasını seçin Seçimlərdə kateqoriya qeyri-aktivdir. Göndərmək üçün kateqoriyanı aktiv et. Yeni SponsorBlock bölümü @@ -1049,6 +1050,7 @@ Təqdim etməyə hazırdır?" %1$s saat %2$s dəqiqə %1$s dəqiqə %2$s saniyə %s saniyə + Qeyri-şəffaflıq: Rəng: Rəng dəyişdirildi Rəngi sıfırla @@ -1086,12 +1088,7 @@ Sonradan qapadılarsa, UI səhvlərin önləmək üçün tətbiq məlumatların 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 --> Saxta tətbiq versiyası hədəfi 19.35.36 - Köhnə Shorts oynadıcı işarələrin bərpa et - 19.26.42 - Köhnə fəaliyyət simvolların bərpa et - - 18.33.40 - Shorts gizli rejimində RYD-ni bərpa et - 18.20.39 - Geniş video sürəti & keyfiyyət menyusunu bərpa et - 18.09.39 - Kitabxana panelini bərpa et - 17.33.42 - Köhnə pleylist bölməsin bərpa et + 19.01.34 - Köhnə fəaliyyət simvolların bərpa et Başlanğıc səhifəsini təyin et diff --git a/patches/src/main/resources/addresources/values-be-rBY/strings.xml b/patches/src/main/resources/addresources/values-be-rBY/strings.xml index d8f3e5de2..5ee4d5fcf 100644 --- a/patches/src/main/resources/addresources/values-be-rBY/strings.xml +++ b/patches/src/main/resources/addresources/values-be-rBY/strings.xml @@ -805,7 +805,6 @@ Second \"item\" text" Дызлайкі паказаны Дызлайкі не паказваюцца Паказвайце \"не падабаецца\" на Shorts - Дызлайкі на Shorts паказаныя "Дызлайкі на Shorts паказаныя Абмежаванне: дызлайкі могуць не адлюстроўвацца ў рэжыме інкогніта" @@ -1004,6 +1003,8 @@ Second \"item\" text" Галасаваць супраць Змяніць катэгорыю Няма сегментаў для галасавання + + %1$s да %2$s Выберыце катэгорыю сегмента Катэгорыя адключана ў наладах. Уключыце катэгорыю для адпраўкі. Новы сегмент SponsorBlock @@ -1051,6 +1052,7 @@ Second \"item\" text" %1$s гадзін %2$s хвілін %1$s хвілін %2$s секунд %s секунд + Непразрыстасць: колер: Колер змяніўся Скід колеру @@ -1088,12 +1090,7 @@ Second \"item\" text" 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 --> Падробка мэтавай версіі праграмы 19.35.36 — Восстановить старые значки плеера Shorts - 19.26.42 - Аднаўленне старых значкоў навігацыі - - 18.33.40 - Аднаўленне RYD на Shorts у рэжыме інкогніта - 18.20.39 - Аднавіць хуткасць шырокага відэа & якаснае меню - 18.09.39 - Аднаўленне ўкладкі бібліятэкі - 17.33.42 - Аднаўленне старой паліцы плэйлістоў + 19.01.34 - Аднаўленне старых значкоў навігацыі Усталяваць стартавую старонку diff --git a/patches/src/main/resources/addresources/values-bg-rBG/strings.xml b/patches/src/main/resources/addresources/values-bg-rBG/strings.xml index 59d29bb1b..e4e674985 100644 --- a/patches/src/main/resources/addresources/values-bg-rBG/strings.xml +++ b/patches/src/main/resources/addresources/values-bg-rBG/strings.xml @@ -805,7 +805,6 @@ Second \"item\" text" Нехаресванията се показват Нехаресванията не се показват Пок. нехаресвания в кратките клипове - Нехаресванията на Shorts са показани "Нехаресванията на Shorts са показани Ограничение: Нехаресванията може да не се показват в режим инкогнито" @@ -1003,6 +1002,8 @@ Second \"item\" text" Отрицателен вот Промяна на категорията Няма сегменти, за които да гласувате + + %1$s до %2$s Изберете категория сегмент Категорията е изкл. в настройките. Вкл. я за да можете да изпратите. Нова част в SponsorBlock @@ -1050,6 +1051,7 @@ Second \"item\" text" %1$s часове %2$s минути %1$s минути %2$s секунди %s секунди + Непрозрачност: Цвят: Цветът е променен Възстанови цвета @@ -1087,12 +1089,7 @@ Second \"item\" text" 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 --> Подлъгване за версията на 19.35.36 - Възстановете старите икони на Shorts в плейъра - 19.26.42 - Възстановяване на старите икони за навигация - - 18.33.40 - Възстановете RYD в режим „инкогнито“ на Shorts - 18.20.39 - Възстановяване на видео скорост & в менюто за качество - 18.09.39 - Възстановяване на таб \"Библиотека\" - 17.33.42 - Връщане на секцията с плейлиста към стария стил + 19.01.34 - Възстановяване на старите икони за навигация Задай начална страница diff --git a/patches/src/main/resources/addresources/values-bn-rBD/strings.xml b/patches/src/main/resources/addresources/values-bn-rBD/strings.xml index 973490c55..3e615b3fa 100644 --- a/patches/src/main/resources/addresources/values-bn-rBD/strings.xml +++ b/patches/src/main/resources/addresources/values-bn-rBD/strings.xml @@ -801,7 +801,6 @@ YouTube সেটিংসে অটো প্লে পরিবর্তন অপছন্দগুলো প্রদর্শিত হয়েছে অপছন্দগুলো প্রদর্শিত হয়নি Shorts এ অপছন্দ দেখান - Shorts-এ অপছন্দগুলি দেখানো হয়েছে "Shorts-এ অপছন্দগুলি দেখানো হয়েছে সীমাবদ্ধতা: ছদ্মবেশী মোডে অপছন্দগুলি নাও দেখা যেতে পারে" @@ -998,6 +997,8 @@ YouTube সেটিংসে অটো প্লে পরিবর্তন ডাউন ভোট বিভাগ পরিবর্তন করুন ভোট দেয়ার জন্য আর কোন সেগমেন্ট নেই + + %1$s থেকে %2$s সেগমেন্টের বিভাগ নির্বাচন করুন সেটিং থেকে বিভাগ নিস্ক্রিয় করা হয়েছে। জমা দিতে বিভাগ সক্রিয় করুন। নতুন স্পন্সরব্লক সেগমেন্ট @@ -1046,6 +1047,7 @@ YouTube সেটিংসে অটো প্লে পরিবর্তন %1$s ঘন্টা %2$s মিনিট %1$s মিনিট %2$s সেকেন্ড %s সেকেন্ড + স্বচ্ছতা: রং: রং পরিবর্তন করা হয়েছে রং আবার সেট করুন @@ -1083,12 +1085,7 @@ YouTube সেটিংসে অটো প্লে পরিবর্তন 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 --> স্পুফ অ্যাপ সংস্করণ লক্ষ্য 19.35.36 - পুরনো Shorts প্লেয়ার আইকন পুনরুদ্ধার করুন - 19.26.42 - পুরনো নেভিগেশন আইকন পুনরুদ্ধার করুন - - 18.33.40 - ছদ্মবেশি মোডে RYD পুনরুদ্ধার করে - 18.20.39 - প্রশ্বস্ত ভিডিও স্পিড এবং গুণমান মেনু পুনরুদ্ধার করে - 18.09.39 - লাইব্রেরি ট্যাপ পুনরুদ্ধার করে - 17.33.42 - পুরোনো প্লেলিস্ট শেলফ পুনরুদ্ধার করে + 19.01.34 - পুরনো নেভিগেশন আইকন পুনরুদ্ধার করুন শুরুর পৃষ্ঠা সেট করুন diff --git a/patches/src/main/resources/addresources/values-bs-rBA/strings.xml b/patches/src/main/resources/addresources/values-bs-rBA/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-bs-rBA/strings.xml +++ b/patches/src/main/resources/addresources/values-bs-rBA/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-ca-rES/strings.xml b/patches/src/main/resources/addresources/values-ca-rES/strings.xml index 8765d969e..35f2c5aac 100644 --- a/patches/src/main/resources/addresources/values-ca-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-ca-rES/strings.xml @@ -805,7 +805,6 @@ Configuració → Reproducció → Reprodueix el vídeo següent automàticament Els \"no m\'agrada\" es mostren Els \"no m\'agrada\" no es mostren Mostrar \"no m\'agrada\" a Shorts - Els \"no m\'agrada\" als Shorts es mostren "Els \"no m'agrada\" als Shorts es mostren Limitació: és possible que els \"no m'agrada\" no apareguin en mode d'incògnit" @@ -1002,6 +1001,8 @@ Ja existeix" Vota en contra Canvia la categoria No hi ha segments per votar + + %1$s a %2$s Trieu la categoria del segment La categoria està desactivada a la configuració. Habiliteu la categoria per enviar. Nou segment de SponsorBlock @@ -1049,6 +1050,7 @@ Preparat per enviar?" %1$s hores %2$s minuts %1$s minuts %2$s segons %s segons + Opacitat: Color: Color canviat Color restablert @@ -1086,12 +1088,7 @@ Si després es desactiva, es recomana esborrar les dades de l'aplicació per evi 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 --> Objectiu de la versió falsa de l\'aplicació 19.35.36 - Restaura els icones vells del reproductor de Shorts - 19.26.42 - Restaura les icones de navegació antigues - - 18.33.40 - Restaura RYD al mode d\'incògnit de Shorts - 18.20.39 - Restaura la velocitat àmplia del vídeo & menú de qualitat - 18.09.39 - Restaura la pestanya de la biblioteca - 17.33.42 - Restaura l\'antic prestatge de la llista de reproducció + 19.01.34 - Restaura les icones de navegació antigues Defineix la pàgina d\'inici diff --git a/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml b/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml index 9b42e0175..fe349f292 100644 --- a/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml +++ b/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml @@ -23,7 +23,7 @@ Second \"item\" text" Kontrola proběhla neúspěšně - Otevřít oficiální webové stránky + Otevřít oficiální webovou stránku Ignorovat <h5>Zdá se, že jste tuto upravenou verzi aplikace nevygenerovali vy.</h5><br>Aplikace nemusí fungovat správně, <b>může být škodlivá nebo nebezpečná</b>.<br><br>Z následujících kontrol vyplývá, že úpravy této aplikace byly provedeny někým jiným:<br><br><small>%1$s</small><br>Je důrazně doporučeno <b>odinstalovat tuto aplikaci a vygenerovat ji sami</b>, abyste měli jistotu, že je aplikace ověřená a bezpečná.<p><br>Pokud zvolíte Ignorovat, toto varování se zobrazí pouze dvakrát. Vygenerována na jiném zařízení @@ -127,20 +127,20 @@ Nebudete informováni o žádné neočekávané události." Tlačítko mikrofonu je skryté Tlačítko mikrofonu se zobrazuje Skrýt vodoznak kanálu - Vodoznak kanála je skrytý + Vodoznak kanálu je skrytý Vodoznak je zobrazen - Skryť horizontálne police + Skrýt horizontální police "Police jsou skryté, například: • Novinky • Pokračovat v sledování • Prozkoumat další kanály • Nákupy • Podívat se znovu" - Police sú zobrazené + Police jsou zobrazené Skrýt tlačítko Připojit se - Tlačidlo je skryté + Tlačitko je skryté Tlačítko je zobrazeno Skrýt panel „Pro vás“ @@ -148,7 +148,7 @@ Nebudete informováni o žádné neočekávané události." Panel polic ve stránce kanálu je zobrazen - Skryť tlačidlo \'Upozornite ma\' + Skrýt tlačitko \'Upozorněte mě\' Tlačítko je skryté Tlačítko je zobrazeno @@ -165,7 +165,7 @@ Nebudete informováni o žádné neočekávané události." Reakce se zobrazují po čase Skrýt pravidla kanálu Pokyny kanálu sa nezobrazujú - Zobrazujú sa pokyny kanálu + Zobrazují se pokyny kanálu Skryť police \"Ďalsej videá\" Police \"Další videá\" sa nezobrazuje Zobrazuje sa polícia \"Další videá\" @@ -805,7 +805,6 @@ Nastavení → Přehrávání → Automatické přehrávání dalšího videa"Nelíbí se se zobrazují Nelíbí se se nezobrazují Zobrazit nelíbí se v Shorts - Počty „Nelíbí se mi“ u Shorts jsou zobrazeny "Počty „Nelíbí se mi“ u Shorts jsou zobrazeny Omezení: Počty „Nelíbí se mi“ se nemusí zobrazit v anonymním režimu" @@ -1002,6 +1001,8 @@ Již existuje" Hlasovat dolů Změnit kategorii Nejsou žádné segmenty, pro které by se dalo hlasovat + + %1$s až %2$s Zvolte kategorii segmentu Kategorie je v nastavení zakázána. Povolte kategorii, abyste ji mohli odeslat. Nový segment SponsorBlock @@ -1049,6 +1050,7 @@ Jste připraveni k odeslání?" %1$s hodin %2$s minut %1$s minut %2$s sekund %s sekund + Průhlednost: Barva: Barva změněna Barva resetována @@ -1086,12 +1088,7 @@ Pokud bude později vypnuta, doporučujeme vymazat data aplikace, aby se zabrán 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 --> Cíl napodobení verze aplikace 19.35.36 - Obnovuje staré ikony Shorts přehrávače - 19.26.42 - Navrátit staré ikony pro navigaci - - 18.33.40 - Obnovení RYD v režimu inkognito Shorts - 18.20.39 - Obnovení široké nabídky rychlosti a kvality videa - 18.09.39 - Obnovení karty Knihovna - 17.33.42 - Obnovení staré police se seznamy skladeb + 19.01.34 - Navrátit staré ikony pro navigaci Nastavit úvodní stránku diff --git a/patches/src/main/resources/addresources/values-da-rDK/strings.xml b/patches/src/main/resources/addresources/values-da-rDK/strings.xml index d4ec8f1bf..f078de96d 100644 --- a/patches/src/main/resources/addresources/values-da-rDK/strings.xml +++ b/patches/src/main/resources/addresources/values-da-rDK/strings.xml @@ -950,6 +950,8 @@ Eksisterer allerede" Ned Skift kategori Der er ingen segmenter at stemme for + + %1$s til %2$s Vælg segmentkategori Kategori er deaktiveret i indstillinger. Aktivér kategori for at indsende. Nyt SponsorBlock segment @@ -993,6 +995,7 @@ Er du klar til at indsende?" %1$s timer %2$s minutter %1$s minutter %2$s sekunder %s sekunder + Opacitet: Farve: Farve ændret Nulstil farve @@ -1030,12 +1033,7 @@ Hvis det senere slås fra, anbefales det at rydde app-dataene for at forhindre U This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch --> Spoof app version mål 19.35.36 - Gendan gamle Shorts player ikoner - 19.26.42 - Gendan gamle navigationsikoner - - 18.33.40 - Gendan RYD på Shorts inkognitotilstand - 18.20.39 - Gendan bred video hastighed & kvalitet menu - 18.09.39 - Genopret biblioteks fane - 17.33.42 - Gendan gammel spilleliste hylde + 19.01.34 - Gendan gamle navigationsikoner Indstil startside diff --git a/patches/src/main/resources/addresources/values-de-rDE/strings.xml b/patches/src/main/resources/addresources/values-de-rDE/strings.xml index 66116abc1..dea55c243 100644 --- a/patches/src/main/resources/addresources/values-de-rDE/strings.xml +++ b/patches/src/main/resources/addresources/values-de-rDE/strings.xml @@ -798,7 +798,6 @@ Einstellungen → Wiedergabe → Nächstes Video automatisch abspielen" Dislikes werden angezeigt Dislikes werden nicht angezeigt Dislikes auf Shorts anzeigen - Dislikes für Shorts werden angezeigt "Dislikes für Shorts werden angezeigt Einschränkung: Dislikes werden möglicherweise nicht im Inkognito-Modus angezeigt" @@ -996,6 +995,8 @@ Existiert bereits" Schlecht bewerten Kategorie ändern Es gibt keine Segmente zur Abstimmung + + %1$s bis %2$s Wähle die Segmentkategorie Kategorie ist in den Einstellungen deaktiviert. Aktivieren zum Senden. Neues SponsorBlock Segment @@ -1043,6 +1044,7 @@ Bereit zum Einreichen?" %1$s Stunden %2$s Minuten %1$s Minuten %2$s Sekunden %s Sekunden + Deckkraft: Farbe: Farbe geändert Farbe zurücksetzen @@ -1080,12 +1082,7 @@ Wenn Sie die Funktion später deaktivieren, wird empfohlen, die App-Daten zu lö 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 --> Spoof-App-Versionsziel 19.35.36 - Alte Shorts Spielersymbole wiederherstellen - 19.26.42 - Alte Navigations-Symbole wiederherstellen - - 18.33.40 - RYD auf Shorts Inkognito-Modus wiederherstellen - 18.20.39 - Wiederherstellen der breiten Videogeschwindigkeit & Qualitätsmenü - 18.09.39 - Bibliotheks-Tab wiederherstellen - 17.33.42 - Alte Wiedergabeliste wiederherstellen + 19.01.34 - Alte Navigations-Symbole wiederherstellen Startseite festlegen diff --git a/patches/src/main/resources/addresources/values-el-rGR/strings.xml b/patches/src/main/resources/addresources/values-el-rGR/strings.xml index 84f236008..8bc35ae6f 100644 --- a/patches/src/main/resources/addresources/values-el-rGR/strings.xml +++ b/patches/src/main/resources/addresources/values-el-rGR/strings.xml @@ -807,7 +807,6 @@ Second \"item\" text" Τα «Δεν μου αρέσει» εμφανίζονται Τα «Δεν μου αρέσει» δεν εμφανίζονται Εμφάνιση στα Shorts - Τα «Δεν μου αρέσει» εμφανίζονται στα Shorts "Τα «Δεν μου αρέσει» εμφανίζονται στα Shorts Περιορισμός: Ενδέχεται να μην εμφανίζονται σε ανώνυμη λειτουργία" @@ -1004,6 +1003,8 @@ Second \"item\" text" Αρνητική ψήφος Αλλαγή κατηγορίας Δεν υπάρχουν τμήματα για να ψηφίσετε + + %1$s έως %2$s Επιλέξτε την κατηγορία του τμήματος Η κατηγορία είναι απενεργοποιημένη στις ρυθμίσεις. Ενεργοποιήστε την κατηγορία για υποβολή. Νέο τμήμα SponsorBlock @@ -1051,6 +1052,7 @@ Second \"item\" text" %1$s ώρες %2$s λεπτά %1$s λεπτά %2$s δευτερόλεπτα %s δευτερόλεπτα + Αδιαφάνεια: Χρώμα: Το χρώμα άλλαξε Το χρώμα επαναφέρθηκε @@ -1088,12 +1090,7 @@ Second \"item\" text" 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 --> Έκδοση τροποποίησης της εφαρμογής 19.35.36 - Επαναφορά των παλιών εικονιδίων της οθόνης αναπαραγωγής Shorts - 19.26.42 - Επαναφορά παλιών εικονιδίων γραμμής πλοήγησης - - 18.33.40 - Επαναφορά λειτουργικότητας του RYD στα Shorts σε λειτουργία ανώνυμης περιήγησης - 18.20.39 - Επαναφορά ευρύτερου μενού ταχύτητας & ποιότητας βίντεο - 18.09.39 - Επαναφορά της καρτέλας βιβλιοθήκης - 17.33.42 - Επαναφορά ενότητας λίστας αναπαραγωγής παλιού στυλ + 19.01.34 - Επαναφορά παλιών εικονιδίων γραμμής πλοήγησης Αλλαγή της αρχικής σελίδας diff --git a/patches/src/main/resources/addresources/values-es-rES/strings.xml b/patches/src/main/resources/addresources/values-es-rES/strings.xml index 4ffb54955..bdb48c409 100644 --- a/patches/src/main/resources/addresources/values-es-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-es-rES/strings.xml @@ -795,7 +795,6 @@ Configuración → Reproducción → Reproducir el siguiente vídeo automáticam Dislikes son mostrados No se muestran Dislikes Mostrar no me gusta en Shorts - Los Dislikes en los Shorts se muestran "Los Dislikes en los Shorts se muestran Limitación: Es posible que los Dislikes no aparezcan en el modo de incógnito" @@ -992,6 +991,8 @@ Ya existe" Voto negativo Cambiar categoría No hay segmentos para votar + + %1$s a %2$s Elige la categoría del segmento Categoría está desactivada en la configuración. Habilitar la categoría para enviar. Nuevo segmento de SponsorBlock @@ -1031,6 +1032,7 @@ Ya existe" %1$s horas %2$s minutos %1$s minutos %2$s segundos %s segundos + Opacidad: Color: Color cambiado Restablecer color @@ -1068,12 +1070,7 @@ Si se desactiva posteriormente, se recomienda borrar los datos de la aplicación 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 --> Versión de aplicación falsa de destino 19.35.36 - Restaurar iconos antiguos del reproductor de Shorts - 19.26.42 - Restaurar iconos de navegación antiguos - - 18.33.40 - Restaurar RYD en Shorts de modo incógnito - 18.20.39 - Restaurar la velocidad de vídeo ancha & menú de calidad - 18.09.39 - Restaurar pestaña de biblioteca - 17.33.42 - Restaurar el estante viejo de lista de reproducción + 19.01.34 - Restaurar iconos de navegación antiguos Establecer página de inicio @@ -1261,9 +1258,9 @@ Habilitar esto puede desbloquear calidades de vídeo más altas" Configuración de GmsCore - Redirecciones URL Bypass - Se omiten las redirecciones URL - No se omiten las redirecciones URL + Evitar redirecciones de URL + Se omiten las redirecciones de URL + No se omiten las redirecciones de URL Abrir enlaces en el navegador diff --git a/patches/src/main/resources/addresources/values-et-rEE/strings.xml b/patches/src/main/resources/addresources/values-et-rEE/strings.xml index f265b0163..b74e00e26 100644 --- a/patches/src/main/resources/addresources/values-et-rEE/strings.xml +++ b/patches/src/main/resources/addresources/values-et-rEE/strings.xml @@ -805,7 +805,6 @@ Seaded → Taasesitus → Esita järgmine video automaatselt" Mittemeeldimised on nähtavad Mittemeeldimised pole nähtavad Näita mittemeeldimisi Shorts\'il - Ei meeldimised on kuvatud teenuses Shorts "Ei meeldimised on kuvatud teenuses Shorts Piirang: Ei meeldimised ei pruugi inkognito režiimis kuvada" @@ -1003,6 +1002,8 @@ Juba olemas" Hääleta alla Muuda kategooriat Hääletamiseks pole segmente + + %1$s kuni %2$s Vali segmendi kategooria Kategooria on seadetes keelatud. Luba kategooria esitamiseks. Uus SponsorBlock segment @@ -1050,6 +1051,7 @@ Kas olete esitamiseks valmis?" %1$s tundi %2$s minutit %1$s minutit %2$s sekundit %s sekundit + Läbipaistmatus: Värv: Värv muudetud Värv lähtestatud @@ -1087,12 +1089,7 @@ Kui see hiljem välja lülitatakse, on soovitatav rakenduse andmed kustutada, et 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 --> Võltsitud rakenduse versiooni siht 19.35.36 - Taastage vanad Shortsi esitajaikoonid - 19.26.42 - Taasta vanad navigeerimise ikoonid - - 18.33.40 - Taastage RYD Shortsi incognito režiimis - 18.20.39 - Taasta lai video kiiruse ja kvaliteedi menüü - 18.09.39 - Taastage raamatukogu vaheleht - 17.33.42 - Taastage vanad esitusloendi riiulid + 19.01.34 - Taasta vanad navigeerimise ikoonid Määra algusleht diff --git a/patches/src/main/resources/addresources/values-eu-rES/strings.xml b/patches/src/main/resources/addresources/values-eu-rES/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-eu-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-eu-rES/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-fa-rIR/strings.xml b/patches/src/main/resources/addresources/values-fa-rIR/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-fa-rIR/strings.xml +++ b/patches/src/main/resources/addresources/values-fa-rIR/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-fi-rFI/strings.xml b/patches/src/main/resources/addresources/values-fi-rFI/strings.xml index 2fba53463..13635237e 100644 --- a/patches/src/main/resources/addresources/values-fi-rFI/strings.xml +++ b/patches/src/main/resources/addresources/values-fi-rFI/strings.xml @@ -152,6 +152,7 @@ Et saa ilmoituksia odottamattomista tapahtumista." Painike on piilotettu Painike näytetään + Piilota \'\"Ihmiset katselivat myös\" -tunniste Tunniste on piilotettu Tunniste näytetään Valitse osion kategoria Kategoria on poistettu käytöstä asetuksissa. Salli kategoria lähettääksesi. Uusi SponsorBlock-osio @@ -1061,6 +1065,14 @@ Oletko valmis lähettämään?" Puhelin Tabletti Ajoneuvo + "Muutokset sisältävät: + +Tabletti-asettelu +• Yhteisöpostaukset on piilotettu + +Ajoneuvo-asettelu +• Shortsit avataan tavallisessa soittimessa +• Syöte on järjestetty aiheiden ja kanavien mukaan" Naamioi sovellusversio @@ -1075,12 +1087,7 @@ Jos tämä poistetaan myöhemmin käytöstä, on suositeltavaa tyhjentää sovel 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 --> Naamioitava kohdeversio 19.35.36 - Palauta vanhat Shorts-soittimen kuvakkeet - 19.26.42 - Palauta vanhat navigointikuvakkeet - - 18.33.40 - Palauita RYD Shorts-videoissa incognito-tilassa - 18.20.39 - Palauta leveä videonopeus- ja laatuvalikko - 18.09.39 - Palauta kirjasto-välilehti - 17.33.42 - Palauta vanha soittolistahylly + 19.01.34 - Palauta vanhat navigointikuvakkeet Aseta aloitussivu @@ -1130,6 +1137,7 @@ Jos tämä poistetaan myöhemmin käytöstä, on suositeltavaa tyhjentää sovel Minisoitin + Muuta sovelluksen sisäisen pienennetyn soittimen tyyliä Minisoittimen tyyppi Pois käytöstä Oletus @@ -1273,6 +1281,8 @@ Tämä voi avata korkealaatuisemmat videot" Avaa linkit selaimessa + Linkit avataan ulkoisessa selaimessa + Linkit avataan sovelluksen sisäisessä selaimessa Poista seurantakyselyparametrit @@ -1299,9 +1309,15 @@ Tämä voi avata korkealaatuisemmat videot" Laatumuutokset koskevat vain nykyistä videota Videon oletuslaatu Wi-Fi-verkossa Videon oletuslaatu mobiiliverkossa + Muista Shortsien laadun muutokset + Laatumuutokset koskevat kaikkia Shortseja + Laatumuutokset koskevat vain nykyistä Shorttia + Shorts-oletuslaatu Wi-Fi-verkossa + Shorts-oletuslaatu mobiiliverkossa mobiili wifi %1$s-oletuslaatu muutettiin: %2$s + Shortsien %1$s-laatu muutettiin: %2$s Näytä nopeuden valintapainike @@ -1333,6 +1349,9 @@ Tämä voi avata korkealaatuisemmat videot" HDR-video on käytössä + Näytä edistynyt videolaatuvalikko + Edistynyt videolaatuvalikko näytetään + Edistynyttä videolaatuvalikkoa ei näytetä Ota kelaus liu\'uttamalla käyttöön diff --git a/patches/src/main/resources/addresources/values-fil-rPH/strings.xml b/patches/src/main/resources/addresources/values-fil-rPH/strings.xml index c42a8de84..5f3a06f44 100644 --- a/patches/src/main/resources/addresources/values-fil-rPH/strings.xml +++ b/patches/src/main/resources/addresources/values-fil-rPH/strings.xml @@ -803,7 +803,6 @@ Mga Setting → Pag-playback → I-autoplay ang susunod na video" Ang mga hindi gusto ay ipinapakita Hindi ipinapakita ang mga hindi gusto Ipakita ang mga hindi gusto sa Shorts - Ipinapakita ang mga Dislike sa Shorts "Ipinapakita ang mga Dislike sa Shorts Limitasyon: Maaaring hindi lumabas ang mga Dislike sa incognito mode" @@ -1001,6 +1000,8 @@ Umiiral na" I-downvote Baguhin ang kategorya Walang mga segment na iboboto + + %1$s hanggang %2$s Piliin ang kategorya ng segment Naka-disable ang kategorya sa mga setting. Paganahin ang kategoryang isumite. Bagong segment ng SponsorBlock @@ -1048,6 +1049,7 @@ Isumite na ba?" %1$s oras %2$s minuto %1$s minuto %2$s segundo %s segundo + Opacity: Kulay: Nagbago ang kulay Pag-reset ng kulay @@ -1085,12 +1087,7 @@ Kung mamaya ay patayin, inirerekumenda na i-clear ang data ng app upang maiwasan 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 --> Target na bersyon ng Spoof app 19.35.36 - Ibalik ang mga lumang icon ng Shorts player - 19.26.42 - Ibalik ang mga lumang icon ng pag-navigate - - 18.33.40 - Ibalik ang RYD sa incognito mode ng Shorts - 18.20.39 - Ibalik ang malawak na bilis ng video & kalidad na menu - 18.09.39 - Ibalik ang tab ng library - 17.33.42 - Ibalik ang lumang istante ng playlist + 19.01.34 - Ibalik ang mga lumang icon ng pag-navigate Itakda ang panimulang pahina diff --git a/patches/src/main/resources/addresources/values-fr-rFR/strings.xml b/patches/src/main/resources/addresources/values-fr-rFR/strings.xml index bbafc2bdb..b7e0a8f84 100644 --- a/patches/src/main/resources/addresources/values-fr-rFR/strings.xml +++ b/patches/src/main/resources/addresources/values-fr-rFR/strings.xml @@ -99,7 +99,7 @@ Appuyez sur le bouton Continuer et autorisez les modifications." Débogage - Activer ou désactiver les options de débogage + Activez ou désactivez les options de débogage Journalisation de débogage Les journaux de débogage sont activés Les journaux de débogage sont désactivés @@ -323,11 +323,11 @@ Les mots avec des majuscules au milieu doivent être saisis en respectant la cas Limitations • Les Shorts ne peuvent pas être masqués par nom de chaîne -• Certains composants de l'interface utilisateur peuvent ne pas être masqués -• Il se peut que vous n'ayez aucun résultat en recherchant un mot-clé" +• Impossible de masquer certains composants de l'interface +• Rechercher un mot-clé peut ne pas fonctionner" Correspondance par mots entiers - Le fait de placer un mot-clé ou une expression entre guillemets permet d\'éviter les correspondances partielles entre les titres de vidéos et les noms des chaînes.<br><br>Par exemple,<br><b>\"ia\"</b> masquera la vidéo : <b>Comment fonctionne les IA ?</b><br>mais ne masquera pas : <b>Quelles études pour devenir commercial ?</b> + Mettre un mot-clé ou une expression entre guillemets permet d\'empêcher les correspondances partielles avec le titre des vidéos et le nom des chaînes.<br><br>Par exemple,<br><b>\"ia\"</b> masquera la vidéo : <b>Comment fonctionnent les IA ?</b><br>mais ne masquera pas : <b>Quelles études pour devenir commercial ?</b> Impossible d\'utiliser ce mot-clé : %s Ajoutez des guillemets pour utiliser : %s @@ -805,7 +805,6 @@ Paramètres → Lecture → Lecture automatique de la vidéo suivante" Les \"Je n\'aime pas\" sont affichés Les \"Je n\'aime pas\" ne sont pas affichés Afficher les \"Je n\'aime pas\" sur les Shorts - Les \"Je n\'aime pas\" sont affichés sur les Shorts "Les \"Je n'aime pas\" sont affichés sur les Shorts Limitation : Il se peut que les \"Je n'aime pas\" n'apparaissent pas en mode navigation privée" @@ -1002,6 +1001,8 @@ Il existe déjà." Voter contre Modifier la catégorie Il n\'y a pas de segments où voter + + %1$s – %2$s Choisissez la catégorie du segment La catégorie est désactivée dans les paramètres. Activez la catégorie pour soumettre. Nouveau segment SponsorBlock @@ -1049,6 +1050,7 @@ Prêt à soumettre ?" %1$s heures et %2$s minutes %1$s minutes et %2$s secondes %s secondes + Opacité : Couleur : Couleur modifiée Couleur réinitialisée @@ -1086,12 +1088,7 @@ Si désactivé ultérieurement, il est recommandé d'effacer les données de l'a 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 --> Version cible 19.35.36 - Restaurer les anciennes icônes du lecteur Shorts - 19.26.42 - Restaurer les anciennes icônes de navigation - - 18.33.40 - Restaurer RYD dans le mode Shorts incognito - 18.20.39 - Restaurer le menu grand format pour la vitesse et la qualité vidéo - 18.09.39 - Restaurer l\'onglet Bibliothèque - 17.33.42 - Restaurer l\'ancienne étagère Playlists + 19.01.34 - Restaurer les anciennes icônes de navigation Définir la page ouverte au lancement @@ -1343,7 +1340,7 @@ Activer cette option peut déverrouiller des qualités vidéo supérieures" Mémoriser les changements de vitesse de lecture Les changements de vitesse de lecture s\'appliquent à toutes les vidéos - Les changements de vitesse de lecture ne s\'appliquent qu\'à la vidéo actuelle + Les changements de vitesse de lecture s\'appliquent uniquement à la vidéo actuelle Vitesse de lecture par défaut Nouvelle vitesse par défaut : %s @@ -1364,7 +1361,7 @@ Activer cette option peut déverrouiller des qualités vidéo supérieures" Falsifier les flux vidéo - Falsifier les flux vidéo du client pour prévenir les problèmes de lecture + Falsifiez les flux vidéo client pour prévenir les problèmes de lecture Falsifier les flux vidéo Les flux vidéo sont falsifiés "Les flux vidéo ne sont pas falsifiés diff --git a/patches/src/main/resources/addresources/values-ga-rIE/strings.xml b/patches/src/main/resources/addresources/values-ga-rIE/strings.xml index dd506a735..1825c4b66 100644 --- a/patches/src/main/resources/addresources/values-ga-rIE/strings.xml +++ b/patches/src/main/resources/addresources/values-ga-rIE/strings.xml @@ -805,7 +805,6 @@ Socruithe → Athsheinm → Uathshein físeán eile" Taispeántar rudaí nach dtaitníonn leo Ní thaispeántar nach dtaitníonn leat Taispeáin neamhthaitníonn ar Shorts - Taispeántar easaontais ar Shorts "Taispeántar easaontais ar Shorts Srianadh: Bíodh easaontais gan teacht ar taispeáint sa mhodh incognito" @@ -1003,6 +1002,8 @@ Tá sé ann cheana féin" Vótáil sios Athraigh catagóir Níl aon deighleoga le vótáil orthu + + %1$s go %2$s Roghnaigh catagóir deighleog Tá catagóir díchumasaithe i socruithe. Cumasaigh catagóir a chur isteach. Deighleog nua SponsorBlock @@ -1050,6 +1051,7 @@ Maithe chun cur isteach?" %1$s uaireanta %2$s nóiméad %1$s nóiméad %2$s soicind %s soicindí + Teimhneacht: Dath: Athraigh dath Athshocrú dath @@ -1087,12 +1089,7 @@ Má dhiúltaítear é níos déanaí, moltar sonraí an aip a ghlanadh chun buga 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 --> Sprioc leagan aip spoof 19.35.36 - Athchóirigh sean-deilbhíní imreoir Shorts - 19.26.42 - Athchóiriú Sean Icóin Treorach - - 18.33.40 - Athchóirigh RYD ar mhodh incognito Shorts - 18.20.39 - Athchóirigh luas leathan físe & roghchlár cáilíochta - 18.09.39 - Athchóirigh cluaisín leabharlainne - 17.33.42 - Athchóirigh sean-seilf seinmliostaí + 19.01.34 - Athchóiriú Sean Icóin Treorach Socraigh leathanach tosaigh diff --git a/patches/src/main/resources/addresources/values-gl-rES/strings.xml b/patches/src/main/resources/addresources/values-gl-rES/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-gl-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-gl-rES/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-gu-rIN/strings.xml b/patches/src/main/resources/addresources/values-gu-rIN/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-gu-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-gu-rIN/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-hi-rIN/strings.xml b/patches/src/main/resources/addresources/values-hi-rIN/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-hi-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-hi-rIN/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-hr-rHR/strings.xml b/patches/src/main/resources/addresources/values-hr-rHR/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-hr-rHR/strings.xml +++ b/patches/src/main/resources/addresources/values-hr-rHR/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-hu-rHU/strings.xml b/patches/src/main/resources/addresources/values-hu-rHU/strings.xml index 6438ea9c4..02b1ec9f2 100644 --- a/patches/src/main/resources/addresources/values-hu-rHU/strings.xml +++ b/patches/src/main/resources/addresources/values-hu-rHU/strings.xml @@ -805,7 +805,6 @@ Beállítások → Lejátszás → Következő videó automatikus lejátszása"< A nem tetszések megjelennek A nem tetszések nem jelennek meg A nem tetszések megjelenítése a Shorts videóknál - A nem tetszések a Shorts-on láthatók "A nem tetszések a Shorts-on láthatók Korlátozás: A nem tetszések inkognitómódban nem jelenhetnek meg" @@ -1003,6 +1002,8 @@ Már létezik" Leszavazás Kategória megváltoztatása Nincsenek szakaszok, amikre szavazni lehet + + %1$s – %2$s Válassza ki a szakasz kategóriáját A kategória letiltva a beállításokban. Engedélyezze a beküldéshez. Új SponsorBlock szakasz @@ -1049,6 +1050,7 @@ Készen állsz a beküldésre?" %1$s óra %2$s perc %1$s perc %2$s másodperc %s másodperc + Áttetszőség: Szín: A szín megváltoztatva Szín alaphelyzetbe @@ -1086,12 +1088,7 @@ Ha később kikapcsolja, akkor ajánlott az alkalmazás adatait törölni, hogy 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 --> Hamisított alkalmazásverzió célja 19.35.36 - A régi Shorts lejátszó ikonok visszaállítása - 19.26.42 - Állítsa vissza a régi navigációs ikonokat - - 18.33.40 - RYD visszaállítása Shorts inkognitó módban - 18.20.39 - Széles videósebesség és minőség menü visszaállítása - 18.09.39 - Könyvtár lap visszaállítása - 17.33.42 - Régi lejátszási lista polc visszállítása + 19.01.34 - Állítsa vissza a régi navigációs ikonokat Kezdőlap beállítása diff --git a/patches/src/main/resources/addresources/values-hy-rAM/strings.xml b/patches/src/main/resources/addresources/values-hy-rAM/strings.xml index 26ad9e818..14a7907c2 100644 --- a/patches/src/main/resources/addresources/values-hy-rAM/strings.xml +++ b/patches/src/main/resources/addresources/values-hy-rAM/strings.xml @@ -804,7 +804,6 @@ MicroG-ի համար մարտկոցի օպտիմալացումը անջատել \"Dislike\"-երը ցուցադրվում են \"Dislike\"-երը չեն ցուցադրվում Ցուցադրել \"Dislike\"-երը Shorts-ում - \"Dislike\"-երը Shorts-ում ցուցադրվում են "\"Dislike\"-երը Shorts-ում ցուցադրվում են Սահմանափակում. \"Dislike\"-երը կարող են չերևալ անհայտ ռեժիմում" @@ -1002,6 +1001,8 @@ Seekbar thumbnails-ները կօգտագործեն նույն որակը, ինչ Նվազեցնել Փոխել կատեգորիան Քվեարկելու համար հատվածներ չկան + + %1$s-ից %2$s Ընտրեք հատվածի կատեգորիան Կատեգորիան անջատված է կարգավորումներում։ Անջատել կատեգորիան՝ լրացնելու համար։ Նոր SponsorBlock հատված @@ -1049,6 +1050,7 @@ Seekbar thumbnails-ները կօգտագործեն նույն որակը, ինչ %1$s ժամ %2$s րոպե %1$s րոպե %2$s վայրկյան %s վայրկյան + Թափանցիկություն․ Գույն։ Գույնը փոխվել է Գույնը վերագործարկվել է @@ -1086,12 +1088,7 @@ Seekbar thumbnails-ները կօգտագործեն նույն որակը, ինչ 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 --> Spoof-ի կիրառության տարբերակի նպատակ 19.35.36 - Վերականգնել հին Shorts պլեյերի պատկերակները - 19.26.42 - Վերականգնել հին նավիգացիոն պատկերակները - - 18.33.40 - Վերականգնել RYD-ը Shorts անանուն ռեժիմում - 18.20.39 - Վերականգնել լայն տեսանյութի արագության & որակի ընտրացանկը - 18.09.39 - Վերականգնել գրադարանի ներդիրը - 17.33.42 - Վերականգնել հին պլեյլիստի դարակը + 19.01.34 - Վերականգնել հին նավիգացիոն պատկերակները Սահմանել մեկնարկային էջ diff --git a/patches/src/main/resources/addresources/values-in-rID/strings.xml b/patches/src/main/resources/addresources/values-in-rID/strings.xml index 1b69d1822..fb3d213bc 100644 --- a/patches/src/main/resources/addresources/values-in-rID/strings.xml +++ b/patches/src/main/resources/addresources/values-in-rID/strings.xml @@ -805,7 +805,6 @@ Pengaturan → Pemutaran → Putar otomatis video berikutnya" Dislike ditampilkan Dislike tidak ditampilkan Tampilkan dislike di Shorts - Dislike pada Shorts ditampilkan "Dislike pada Shorts ditampilkan Batasan: Dislike mungkin tidak muncul dalam mode penyamaran" @@ -1002,6 +1001,8 @@ Sudah ada" Tidak sukai Ubah kategori Tidak ada segmen untuk dipilih + + %1$s ke %2$s Pilih kategori segmen Kategori dinonaktifkan di pengaturan. Aktifkan kategori untuk dikirim. Segmen SponsorBlock Baru @@ -1049,6 +1050,7 @@ Siap mengirim?" %1$s jam %2$s menit %1$s menit %2$s detik %s detik + Opasitas: Warna: Warna berubah Reset warna @@ -1086,12 +1088,7 @@ Jika kemudian dimatikan, disarankan untuk menghapus data aplikasi untuk mencegah 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 --> Target versi app yang dipalsukan 19.35.36 - Pulihkan ikon pemutar Shorts lama - 19.26.42 - Pulihkan ikon navigasi lama - - 18.33.40 - Pulihkan RYD pada mode penyamaran Shorts - 18.20.39 - Pulihkan menu kecepatan & kualitas video lebar - 18.09.39 - Pulihkan tab pustaka - 17.33.42 - Pulihkan rak daftar putar lama + 19.01.34 - Pulihkan ikon navigasi lama Tetapkan halaman awal @@ -1238,7 +1235,7 @@ Ketuk di sini untuk mempelajari lebih lanjut tentang DeArrow" Gunakan tangkapan diam cepat Menggunakan tangkapan diam kualitas sedang. Thumbnail akan dimuat lebih cepat, tetapi siaran langsung, video yang belum dirilis, atau video yang sangat lama mungkin menampilkan thumbnail kosong Menggunakan tangkapan diam berkualitas tinggi - Lama waktu menangkap layar video + Waktu video untuk mengambil gambar diam Awal video Pertengahan video Akhir video diff --git a/patches/src/main/resources/addresources/values-is-rIS/strings.xml b/patches/src/main/resources/addresources/values-is-rIS/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-is-rIS/strings.xml +++ b/patches/src/main/resources/addresources/values-is-rIS/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-it-rIT/strings.xml b/patches/src/main/resources/addresources/values-it-rIT/strings.xml index 77a3329a4..c40673588 100644 --- a/patches/src/main/resources/addresources/values-it-rIT/strings.xml +++ b/patches/src/main/resources/addresources/values-it-rIT/strings.xml @@ -93,7 +93,7 @@ Tocca il pulsante Continua e consenti le modifiche di ottimizzazione." I vecchi menu delle impostazioni non vengono mostrati - Disattiva riproduzione Shorts in background + Disattiva la riproduzione degli Shorts in background La riproduzione in background degli Shorts è disattivata La riproduzione in background degli Shorts è abilitata @@ -293,8 +293,8 @@ Se al momento un Doodle è visibile nella tua regione e questa impostazione nasc Filtro personalizzato Nascondi i componenti usando i filtri personalizzati Attiva il filtro personalizzato - Il filtro personalizzato è attivato - Il filtro personalizzato è disattivato + Il filtro personalizzato è attivo + Il filtro personalizzato è disattivo Filtro personalizzato L\'elenco dei componenti da filtrare separati da nuove righe @@ -360,7 +360,7 @@ Questa funzione è disponibile solo per i dispositivi più vecchi" Il banner del negozio è nascosto Il banner del negozio è visibile Nascondi la sezione Negozio - Lo scaffale è nascosto + La sezione negozio è nascosta La sezione negozio è visibile Nascondi link agli acquisti nella descrizione del video I link di shopping nella descrizione del video sono nascosti @@ -805,7 +805,6 @@ Impostazioni → Riproduzione → Riproduzione automatica video successivo"I Non Mi Piace sono visibili I Non Mi Piace non sono visibili Mostra i Non Mi Piace degli Shorts - I \"Non mi piace\" sugli Shorts sono visualizzati "I \"Non mi piace\" sugli Shorts sono visualizzati Limitazione: i \"Non mi piace\" potrebbero non apparire in modalità incognito" @@ -1002,6 +1001,8 @@ Esiste già" Non mi piace Modifica categoria Non ci sono segmenti da votare + + Da %1$s a %2$s Scegli la categoria del segmento La categoria è disabilitata nelle impostazioni. Abilita la categoria da inviare. Nuovo segmento di SponsorBlock @@ -1049,6 +1050,7 @@ Pronto per l'invio?" %1$s ore %2$s minuti %1$s minuti %2$s secondi %s secondi + Opacità: Colore: Colore modificato Ripristino colore @@ -1086,12 +1088,7 @@ Se in seguito verrà disattivato, si consiglia di cancellare i dati dell'app per 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 --> Target della versione dell\'app desiderata 19.35.36 - Ripristinare le vecchie icone del player Shorts - 19.26.42 - Ripristina le vecchie icone di navigazione - - 18.33.40 - Ripristina RYD negli Shorts in modalità incognito - 18.20.39 - Ripristina velocità video larga & menu qualità - 18.09.39 - Ripristina scheda libreria - 17.33.42 - Ripristina vecchi ripiani playlist + 19.01.34 - Ripristina le vecchie icone di navigazione Imposta pagina iniziale diff --git a/patches/src/main/resources/addresources/values-iw-rIL/strings.xml b/patches/src/main/resources/addresources/values-iw-rIL/strings.xml index 33a662bd1..ff6b45b3c 100644 --- a/patches/src/main/resources/addresources/values-iw-rIL/strings.xml +++ b/patches/src/main/resources/addresources/values-iw-rIL/strings.xml @@ -353,6 +353,7 @@ Second \"item\" text" הסתר כרטיסים בחסות עצמית כרטיסים בחסות עצמית מוסתרים כרטיסים בחסות עצמית מוצגים + הסתר כרזת \'ראה מוצרים\' כרזה מוסתרת כרזה מוצגת הסתר כרזת חנות של מסך סיום @@ -611,6 +612,7 @@ Second \"item\" text" כותרת תחתונה של תפריט איכות סרטון מוצגת + הסתר לחצני הקודם & הבא הלחצנים מוסתרים הלחצנים מוצגים הסתר לחצן העברה @@ -804,7 +806,6 @@ Second \"item\" text" דיסלייקים מוצגים דיסלייקים אינם מוצגים הצג דיסלייקים ב-Shorts - דיסלייקים ב-Shorts מוצגים "דיסלייקים ב-Shorts מוצגים מגבלה: ייתכן שלא יופיעו דיסלייקים במצב פרטי" @@ -930,7 +931,7 @@ Second \"item\" text" שנה התנהגות מקטע נותן חסות קידום בתשלום, הפניות בתשלום ופרסומות ישירות. לא בשביל מימון עצמי או הכרות תודה בחינם לגורמים/יוצרים/אתרים/מוצרים שהם אוהבים - קידום ללא תשלום / עצמי + קידום ללא תשלום/עצמי דומה לנותן חסות למעט קידום ללא תשלום או קידום עצמי. כולל קטעים על מרצ\'נדייז, תרומות, או מידע לגבי עם מי הם שיתפו פעולה תזכורת לאינטראקציה (הרשמה למינוי) תזכורת קצרה לסמן \'אהבתי\', להירשם למינוי או לעקוב אחריהם באמצע התוכן. אם זה ארוך או על משהו ספציפי, זה צריך במקום להיות תחת קידום עצמי @@ -1001,6 +1002,8 @@ Second \"item\" text" הצבע נגד שנה קטגוריה אין מקטעים להצביע עבורם + + %1$s עד %2$s בחר את קטגוריית המקטע קטגוריה מושבתת בהגדרות. הפעל קטגוריה כדי לשלוח. מקטע חדש של SponsorBloack @@ -1048,6 +1051,7 @@ Second \"item\" text" %1$s שעות %2$s דקות %1$s דקות %2$s שניות %s שניות + אטימות: צבע: צבע שונה צבע אופס @@ -1063,6 +1067,14 @@ Second \"item\" text" טלפון טאבלט רכב + "השינויים כוללים: + +פריסת טאבלט +• פוסטים קהילתיים מוסתרים + +פריסת רכב +• סרטוני Shorts נפתחים בנגן הרגיל +• פיד מאורגן לפי נושאים וערוצים" זייף גרסת יישום @@ -1077,12 +1089,7 @@ Second \"item\" text" 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 --> יעד גרסת יישום מזויפת 19.35.36 - שחזר סמלי נגן Shorts ישנים - 19.26.42 - שחזר סמלי ניווט ישנים - - 18.33.40 - שחזר RYD במצב פרטי של Shorts - 18.20.39 - שחזר מהירות סרטון רחב & תפריט איכות - 18.09.39 - שחזר כרטיסיית ספרייה - 17.33.42 - שחזר מדף פלייליסט ישן + 19.01.34 - שחזר סמלי ניווט ישנים הגדר דף התחלה @@ -1132,6 +1139,7 @@ Second \"item\" text" מיני-נגן + שנה את הסגנון של הנגן הממוזער בתוך היישום סוג מיני-נגן מושבת ברירת מחדל @@ -1275,6 +1283,8 @@ Second \"item\" text" פתח קישורים בדפדפן + פותח קישורים בדפדפן חיצוני + פותח קישורים בדפדפן בתוך היישום הסר פרמטר מעקב של שאילתה @@ -1301,9 +1311,15 @@ Second \"item\" text" שינויי איכות חלים רק על הסרטון הנוכחי איכות סרטון ברירת מחדל ברשת אלחוטית איכות סרטון ברירת מחדל ברשת סלולרית + זכור שינויי איכות Shorts + שינויי איכות חלים על כל הסרטוני Shorts + שינויי איכות חלים רק על הסרטון Short הנוכחי + איכות Shorts ברירת מחדל ברשת אלחוטית + איכות Shorts ברירת מחדל ברשת סלולרית סלולרית אלחוטית איכות %1$s ברירת מחדל שונתה ל: %2$s + איכות %1$s Shorts שונתה ל: %2$s הצג לחצן דו-שיח של מהירות @@ -1335,6 +1351,9 @@ Second \"item\" text" סרטון HDR מופעל + הצג תפריט איכות סרטון מתקדם + תפריט איכות סרטון מתקדם מוצג + תפריט איכות סרטון מתקדם אינו מוצג הפעל החלק כדי לדלג diff --git a/patches/src/main/resources/addresources/values-ja-rJP/strings.xml b/patches/src/main/resources/addresources/values-ja-rJP/strings.xml index 3f2a0f551..14d9cd144 100644 --- a/patches/src/main/resources/addresources/values-ja-rJP/strings.xml +++ b/patches/src/main/resources/addresources/values-ja-rJP/strings.xml @@ -335,7 +335,7 @@ MicroG GmsCore に対する電池の最適化を無効にしても、バッテ キーワード %sを使用する引用符を追加 キーワードに矛盾する宣言があります: %s キーワードが短すぎるため二重引用符で囲む必要があります: %s - キーワードはすべての動画を除外します: %s + キーワードはすべての動画を除外します: %s 一般的な広告を非表示 @@ -545,7 +545,7 @@ MicroG GmsCore に対する電池の最適化を無効にしても、バッテ "この設定を無効にすると、ショート動画の広告ブロックも無効になります。 この設定を変更しても効果がない場合は、シークレット モードに切り替えてみてください。" - ナビゲーション ボタンをアイコンのみで表示する + ボタンをアイコンのみで表示する ナビゲーション ボタンはアイコンのみで表示されます ナビゲーション ボタンはアイコンと文字で表示されます ステータス バーの半透明化を無効にする @@ -807,7 +807,6 @@ MicroG GmsCore に対する電池の最適化を無効にしても、バッテ 低評価数が表示されます 低評価数は表示されません Shortsで低評価数を表示する - Shortsの低評価が表示されます "Shortsの低評価が表示されます 制限事項: シークレット モードでは低評価が表示されない場合があります" @@ -1004,6 +1003,8 @@ MicroG GmsCore に対する電池の最適化を無効にしても、バッテ 低評価 カテゴリーの変更 投票できるセグメントがありません + + %1$s-%2$s セグメントのカテゴリを選択してください カテゴリは設定で無効になっています。提出するカテゴリを有効にしてください。 新しい SponsorBlock セグメント @@ -1051,6 +1052,7 @@ MicroG GmsCore に対する電池の最適化を無効にしても、バッテ %1$s時間%2$s分 %1$s 分 %2$s 秒 %s 秒 + 透明度: 色: 色を変更しました 色をリセット @@ -1088,12 +1090,7 @@ Automotive レイアウト 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 --> アプリバージョン 19.35.36 - ショート動画プレーヤーのアイコンを旧バージョンに - 19.26.42 - 旧バージョンのナビゲーション アイコンを復元 - - 18.33.40 - シークレット モード使用時のショート動画の RYD を復元 - 18.20.39 - ワイドビデオスピード & クオリティメニューを復元 - 18.09.39 - ライブラリ タブを復元 - 17.33.42 - プレイリスト欄を旧バージョンに + 19.01.34 - 旧バージョンのナビゲーション アイコンを復元 起動画面 @@ -1196,13 +1193,13 @@ Automotive レイアウト グラデーション読み込み画面を有効にする 画面読み込み時にグラデーションの背景が表示されます 画面読み込み時に通常の背景が表示されます - 編集したシークバーの色を使用する - 編集したシークバーの色が表示されます + 設定したシークバーの色を使用する + 設定したシークバーの色が表示されます デフォルトのシークバーの色が表示されます シークバーの色 - シークバーの色を編集します + シークバーの色を設定します シークバーのアクセントカラー - シークバーのアクセントカラーを編集します + シークバーのアクセントカラーを設定します 入力されたシークバーの色の値は無効です diff --git a/patches/src/main/resources/addresources/values-ka-rGE/strings.xml b/patches/src/main/resources/addresources/values-ka-rGE/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-ka-rGE/strings.xml +++ b/patches/src/main/resources/addresources/values-ka-rGE/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-kk-rKZ/strings.xml b/patches/src/main/resources/addresources/values-kk-rKZ/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-kk-rKZ/strings.xml +++ b/patches/src/main/resources/addresources/values-kk-rKZ/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-km-rKH/strings.xml b/patches/src/main/resources/addresources/values-km-rKH/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-km-rKH/strings.xml +++ b/patches/src/main/resources/addresources/values-km-rKH/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-kn-rIN/strings.xml b/patches/src/main/resources/addresources/values-kn-rIN/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-kn-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-kn-rIN/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-ko-rKR/strings.xml b/patches/src/main/resources/addresources/values-ko-rKR/strings.xml index 2f42e68e5..c8e48d9c1 100644 --- a/patches/src/main/resources/addresources/values-ko-rKR/strings.xml +++ b/patches/src/main/resources/addresources/values-ko-rKR/strings.xml @@ -805,7 +805,6 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배 싫어요 수를 표시합니다 싫어요 수를 표시하지 않습니다 Shorts에서 싫어요 수 표시하기 - Shorts에서 싫어요 수를 표시합니다 "Shorts에서 싫어요 수를 표시합니다 알려진 문제점: @@ -1003,6 +1002,8 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배 싫어요 카테고리 변경 투표할 구간이 없습니다 + + %1$s ~ %2$s 구간 카테고리를 선택하세요 이 카테고리는 비활성화되어 있습니다. 제출하려면 설정에서 활성화해야 합니다 새 SponsorBlock 구간 @@ -1050,6 +1051,7 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배 %1$s 시간 %2$s 분 %1$s 분 %2$s 초 %s 초 + 불투명도: 색상: 설정한 색상을 적용하였습니다 색상을 초기화하였습니다 @@ -1087,12 +1089,7 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배 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 --> 변경할 앱 버전 19.35.36 - 이전 Shorts 플레이어 아이콘을 복원합니다 - 19.26.42 - 이전 하단바 아이콘을 복원합니다 - - 18.33.40 - 시크릿 모드에서 Shorts RYD를 복원합니다 - 18.20.39 - 넓은 동영상 재생 속도 & 화질 메뉴를 복원합니다 - 16.09.39 - 이전 보관함 탭을 복원합니다 (내 페이지 탭을 비활성화합니다) - 17.33.42 - 이전 재생목록 선반을 복원합니다 + 19.01.34 - 이전 하단바 아이콘을 복원합니다 앱 시작 페이지 변경하기 diff --git a/patches/src/main/resources/addresources/values-ky-rKG/strings.xml b/patches/src/main/resources/addresources/values-ky-rKG/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-ky-rKG/strings.xml +++ b/patches/src/main/resources/addresources/values-ky-rKG/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-lo-rLA/strings.xml b/patches/src/main/resources/addresources/values-lo-rLA/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-lo-rLA/strings.xml +++ b/patches/src/main/resources/addresources/values-lo-rLA/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-lt-rLT/strings.xml b/patches/src/main/resources/addresources/values-lt-rLT/strings.xml index 9680bf846..362c6dbc8 100644 --- a/patches/src/main/resources/addresources/values-lt-rLT/strings.xml +++ b/patches/src/main/resources/addresources/values-lt-rLT/strings.xml @@ -805,7 +805,6 @@ Nustatymai → Atkūrimas → Automatiškai leisti kitą vaizdo įrašą"\"Nepatinka\" rodomi \"Nepatinka\" nerodomi Rodyti \"Nepatinka\" Shorts - Nepritarimai „Shorts“ rodomi "Nepritarimai „Shorts“ rodomi Apribojimas: nepritarimai gali būti nerodomi inkognito režimu" @@ -1004,6 +1003,8 @@ Jau egzistuoja" Balsuoti prieš Keisti kategoriją Nėra segmentų, už kuriuos būtų galima balsuoti + + Nuo %1$s iki %2$s Pasirinkite segmento kategoriją Kategorija išjungta nustatymuose. Įjunkite kategoriją, kad galėtumėte pateikti. Naujas „SponsorBlock“ segmentas @@ -1051,6 +1052,7 @@ Ar paruošta pateikti?" %1$s valandos %2$s minutės %1$s minutės %2$s sekundės %s sekundės + Neskaidrumas: Spalva: Spalva pakeista Spalva atstatyta @@ -1088,12 +1090,7 @@ Jei vėliau išjungta, rekomenduojama išvalyti programos duomenis, kad būtų i 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 --> Programėlės versijos apsimetinėjimo tikslas 19.35.36 - Atkurti senus \"Shorts\" grotuvo piktogramas - 19.26.42 - Senos narūyklės ikonų atkūrą - - 18.33.40 - Atkurti RYD \"Shorts\" inkognito režime - 18.20.39 - Atkurti platų vaizdo greičio ir kokybės meniu - 18.09.39 - Atkurti bibliotekos skirtuką - 17.33.42 - Atkurti seną grojaraščio lentyną + 19.01.34 - Senos narūyklės ikonų atkūrą Nustatyti pradinį puslapį diff --git a/patches/src/main/resources/addresources/values-lv-rLV/strings.xml b/patches/src/main/resources/addresources/values-lv-rLV/strings.xml index ce9a39436..5761edba2 100644 --- a/patches/src/main/resources/addresources/values-lv-rLV/strings.xml +++ b/patches/src/main/resources/addresources/values-lv-rLV/strings.xml @@ -805,7 +805,6 @@ Iestatījumi → Atskaņošana → Automātiski atskaņot nākamo video"Nepatīk pogas ir redzamas Nepatīk pogas nav redzamas Rādīt nepatīk pogas Shorts - Nepatīk pie Shorts ir redzami "Nepatīk pie Shorts ir redzami Ierobežojums: Nepatīk var neparādīties inkognito režīmā" @@ -1002,6 +1001,8 @@ Jau pastāv" Novērtēt uz leju Mainīt kategoriju Nav segmentu, par kuriem balsot + + %1$s līdz %2$s Izvēlieties segmenta kategoriju Kategorija ir atspējota iestatījumos. Iespējojiet kategoriju, lai iesniegtu. Jauns SponsorBlock segments @@ -1049,6 +1050,7 @@ Vai esat gatavs iesniegt?" %1$s stundas %2$s minūtes %1$s minūtes %2$s sekundes %s sekundes + Necaurredzamība: Krāsa: Krāsa mainīta Krāsa atiestatīta @@ -1086,12 +1088,7 @@ Ja vēlāk tiks izslēgts, ieteicams notīrīt lietotnes datus, lai novērstu li 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 --> Viltot lietotnes versijas mērķis 19.35.36 - Atjaunot vecās Shorts spēlētāja ikonas - 19.26.42 - Atjaunot vecās navigācijas ikonas - - 18.33.40 - Atjaunot RYD uz Shorts inkognito režīmā - 18.20.39 - Atjaunot plata video ātruma un kvalitātes izvēlni - 18.09.39 - Atjaunot bibliotēkas cilni - 17.33.42 - Atjaunot veco atskaņošanas saraksta plauktu + 19.01.34 - Atjaunot vecās navigācijas ikonas Iestatīt sākotnējo lapu diff --git a/patches/src/main/resources/addresources/values-mk-rMK/strings.xml b/patches/src/main/resources/addresources/values-mk-rMK/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-mk-rMK/strings.xml +++ b/patches/src/main/resources/addresources/values-mk-rMK/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-ml-rIN/strings.xml b/patches/src/main/resources/addresources/values-ml-rIN/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-ml-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ml-rIN/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-mn-rMN/strings.xml b/patches/src/main/resources/addresources/values-mn-rMN/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-mn-rMN/strings.xml +++ b/patches/src/main/resources/addresources/values-mn-rMN/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-mr-rIN/strings.xml b/patches/src/main/resources/addresources/values-mr-rIN/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-mr-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-mr-rIN/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-ms-rMY/strings.xml b/patches/src/main/resources/addresources/values-ms-rMY/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-ms-rMY/strings.xml +++ b/patches/src/main/resources/addresources/values-ms-rMY/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-my-rMM/strings.xml b/patches/src/main/resources/addresources/values-my-rMM/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-my-rMM/strings.xml +++ b/patches/src/main/resources/addresources/values-my-rMM/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-nb-rNO/strings.xml b/patches/src/main/resources/addresources/values-nb-rNO/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-nb-rNO/strings.xml +++ b/patches/src/main/resources/addresources/values-nb-rNO/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-ne-rIN/strings.xml b/patches/src/main/resources/addresources/values-ne-rIN/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-ne-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ne-rIN/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-nl-rNL/strings.xml b/patches/src/main/resources/addresources/values-nl-rNL/strings.xml index 3c9ce5fff..7500609bd 100644 --- a/patches/src/main/resources/addresources/values-nl-rNL/strings.xml +++ b/patches/src/main/resources/addresources/values-nl-rNL/strings.xml @@ -805,7 +805,6 @@ Instellingen → Afspelen → Volgende video automatisch afspelen" \"Dislikes\" worden weergegeven \"Dislikes\" worden niet weergegeven Toon onlikes op Shorts - Vind ik niet leuk op Shorts worden weergegeven "Vind ik niet leuk op Shorts worden weergegeven Beperking: Vind ik niet leuk verschijnen mogelijk niet in de incognitomodus" @@ -1003,6 +1002,8 @@ Bestaat al" Stem omlaag Verander categorie Er zijn geen segmenten om voor te stemmen + + %1$s tot %2$s Kies de segmentcategorie Categorie is uitgeschakeld in de instellingen. Schakel de categorie in om in te dienen. Nieuw SponsorBlock-segment @@ -1050,6 +1051,7 @@ Klaar om in te dienen?" %1$s uren %2$s minuten %1$s minuten %2$s seconden %s seconden + Ondoorzichtigheid: Kleur: Kleur gewijzigd Kleur gereset @@ -1087,12 +1089,7 @@ Als het later wordt uitgeschakeld, wordt aanbevolen om de app-gegevens te wissen 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 --> Doel voor vervalsen app-versie 19.35.36 - Herstel oude pictogrammen voor Shorts-speler - 19.26.42 - Oude navigatie-pictogrammen herstellen - - 18.33.40 - Herstel RYD op Shorts incognitomodus - 18.20.39 - Herstel breed snelheids- en kwaliteitsmenu voor video\'s - 18.09.39 - Herstel bibliotheektabblad - 17.33.42 - Herstel oude afspeellijstplank + 19.01.34 - Oude navigatie-pictogrammen herstellen Startpagina instellen diff --git a/patches/src/main/resources/addresources/values-or-rIN/strings.xml b/patches/src/main/resources/addresources/values-or-rIN/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-or-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-or-rIN/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-pa-rIN/strings.xml b/patches/src/main/resources/addresources/values-pa-rIN/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-pa-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-pa-rIN/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-pl-rPL/strings.xml b/patches/src/main/resources/addresources/values-pl-rPL/strings.xml index 36029dbf7..8d280d439 100644 --- a/patches/src/main/resources/addresources/values-pl-rPL/strings.xml +++ b/patches/src/main/resources/addresources/values-pl-rPL/strings.xml @@ -805,7 +805,6 @@ Ustawienia → Odtwarzanie → Autoodtwarzanie następnego filmu" Łapki w dół są widoczne Łapki w dół są ukryte Łapki w dół na Shortsach - Oceny negatywne na Shorts są widoczne "Oceny negatywne na Shorts są widoczne Ograniczenie: Oceny negatywne mogą nie pojawiać się w trybie incognito" @@ -1003,6 +1002,8 @@ Istnieje już" Głos przeciw Zmień kategorię Brak segmentów do zagłosowania + + %1$s do %2$s Wybierz kategorię segmentu Kategoria jest wyłączona w ustawieniach. Włącz kategorię do wysłania. Nowy segment SponsorBlocka @@ -1050,6 +1051,7 @@ Gotowy do przesłania?" %1$s godzin %2$s minut %1$s minut %2$s sekund %s sekund + Krycie: Kolor: Zmieniono kolor Zresetowano kolor @@ -1087,12 +1089,7 @@ Jeśli później zostanie wyłączony, zaleca się wyczyszczenie danych aplikacj 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 --> Docelowa oszukiwana wersja aplikacji 19.35.36 - Przywraca stare ikony odtwarzacza Shortsów - 19.26.42 - Przywróć stare ikony nawigacji - - 18.33.40 - Przywraca RYD w trybie incognito dla Shortsów - 18.20.39 - Przywraca szerokie menu prędkości i jakości filmu - 18.09.39 - Przywraca kartę biblioteki - 17.33.42 - Przywraca starą półkę do playlist + 19.01.34 - Przywróć stare ikony nawigacji Strona startowa diff --git a/patches/src/main/resources/addresources/values-pt-rBR/strings.xml b/patches/src/main/resources/addresources/values-pt-rBR/strings.xml index 503f9a033..a7049167c 100644 --- a/patches/src/main/resources/addresources/values-pt-rBR/strings.xml +++ b/patches/src/main/resources/addresources/values-pt-rBR/strings.xml @@ -803,7 +803,6 @@ Configurações → Reprodução → Reproduzir próximo vídeo automaticamente" Não gostei está oculto Não gostei não está oculto Mostrar não gostei no Shorts - \"Não gostei\" nos Shorts são mostrados "\"Não gostei\" nos Shorts são mostrados Limitação: \"Não gostei\" podem não aparecer no modo anônimo" @@ -1000,6 +999,8 @@ Já existe" Voto negativo Alterar categoria Não há segmentos para votar + + %1$s para %2$s Escolha a categoria do segmento Categoria está desativada nas configurações. Ative a categoria para enviar. Novo segmento SponsorBlock @@ -1047,6 +1048,7 @@ Pronto para enviar?" %1$s horas %2$s minutos %1$s minutos %2$s segundos %s segundos + Opacidade: Cor: Cor alterada Redefinir cor @@ -1084,12 +1086,7 @@ Se posteriormente desativado, é recomendável limpar os dados do aplicativo par 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 --> Versão de spoofing alvo 19.35.36 - Restaurar ícones antigos do player dos Shorts - 19.26.42 - Restaurar ícones de navegação antigos - - 18.33.40 - Restaurar RYD no modo de navegação anônima nos Shorts - 18.20.39 - Restaurar a velocidade de vídeo ampla & menu de qualidade - 18.09.39 - Restaurar aba biblioteca - 17.33.42 - Restaurar prateleira de lista de reprodução antiga + 19.01.34 - Restaurar ícones de navegação antigos Definir página inicial diff --git a/patches/src/main/resources/addresources/values-pt-rPT/strings.xml b/patches/src/main/resources/addresources/values-pt-rPT/strings.xml index a56b43b70..114ed9e58 100644 --- a/patches/src/main/resources/addresources/values-pt-rPT/strings.xml +++ b/patches/src/main/resources/addresources/values-pt-rPT/strings.xml @@ -805,7 +805,6 @@ Configurações → Reprodução → Reproduzir o próximo vídeo automaticament Descurtidas são visíveis Não há curtidas visíveis Mostrar não curtidas na abreviação - As não gostos em Shorts são mostradas "As não gostos em Shorts são mostradas Limitação: As não gostos podem não aparecer no modo anônimo" @@ -1003,6 +1002,8 @@ Seu ID de usuário é como uma senha e nunca deve ser compartilhado. Desaprovar Alterar categoria Não há segmentos para votar em + + %1$s para %2$s Escolha a categoria do segmento A categoria está desativada nas configurações. Habilite a categoria para enviar. Novo segmento para Patrocinador @@ -1050,6 +1051,7 @@ Pronto para enviar?" %1$s horas %2$s minutos %1$s minutos %2$s segundos %s segundos + Opacidade: Cor: Cor alterada Redefinir cor @@ -1087,12 +1089,7 @@ Nếu sau này tắt, bạn nên xóa dữ liệu ứng dụng để tránh lỗ 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 --> Destaque de versão do app 19.35.36 - Restaurar os icones antigos do reprodutor dos Shorts - 19.26.42 - Restaurar ícones antigos de navegação - - 18.33.40 - Restaurar RYD em Modo Curto Incógnito - 18.20.39 - Restaurar menu de qualidade de vídeo & - 18.09.39 - Restaurar aba da biblioteca - 17.33.42 - Restaurar a pategoria de playlist antiga + 19.01.34 - Restaurar ícones antigos de navegação Definir página inicial diff --git a/patches/src/main/resources/addresources/values-ro-rRO/strings.xml b/patches/src/main/resources/addresources/values-ro-rRO/strings.xml index 54283fbc0..d17063239 100644 --- a/patches/src/main/resources/addresources/values-ro-rRO/strings.xml +++ b/patches/src/main/resources/addresources/values-ro-rRO/strings.xml @@ -805,7 +805,6 @@ Setări → Redare → Redare automată videoclipul următor" Dislike-urile sunt afișate Dislike-urile nu sunt afișate Arată displace pe scurtmetraje - Aprecierile negative pe Shorts sunt afișate "Aprecierile negative pe Shorts sunt afișate Limitare: Este posibil ca aprecierile negative să nu apară în modul incognito" @@ -1002,6 +1001,8 @@ Există deja" Retrogradeaza Schimbă categoria Nu sunt segmente pentru a vota pentru + + %1$s până la %2$s Alege categoria segmentului Categoria este dezactivată în setări. Activați categoria pentru a trimite. Segment de sponsorBlock nou @@ -1049,6 +1050,7 @@ Ești gata să trimiți?" %1$s ore %2$s minute %1$s minute %2$s secunde %s secunde + Opacitate: Culoare: Culoare schimbată Resetare culoare @@ -1086,12 +1088,7 @@ Dacă este dezactivat ulterior, se recomandă să ștergeți datele aplicației 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 --> Țintă versiune falsificată a aplicației 19.35.36 - Restaurează pictogramele vechi ale playerului Shorts - 19.26.42 - Revenire la pictogramele vechi pentru navigare - - 18.33.40 - Restaurează RYD în modul incognito Shorts - 18.20.39 - Restaurare viteză video mare & meniu calitate - 18.09.39 - Restaurare tab librărie - 17.33.42 - Restaurați raftul vechii liste de redare + 19.01.34 - Revenire la pictogramele vechi pentru navigare Setaţi pagina de start diff --git a/patches/src/main/resources/addresources/values-ru-rRU/strings.xml b/patches/src/main/resources/addresources/values-ru-rRU/strings.xml index c729c7282..a44287300 100644 --- a/patches/src/main/resources/addresources/values-ru-rRU/strings.xml +++ b/patches/src/main/resources/addresources/values-ru-rRU/strings.xml @@ -805,7 +805,6 @@ Second \"item\" text" Дизлайки показаны Дизлайки скрыты Показать дизлайки в Shorts - Дизлайки в Shorts показаны "Дизлайки в Shorts показаны Ограничение: дизлайки могут не показываться в режиме инкогнито" @@ -1003,6 +1002,8 @@ Second \"item\" text" Голос \"против\" Изменить категорию Нет сегментов для голосования + + %1$s до %2$s Выбрать категорию сегмента Категория отключена в настройках. Включите категорию для отправки. Новый сегмент SponsorBlock @@ -1050,6 +1051,7 @@ Second \"item\" text" %1$s часов %2$s минут %1$s минут(ы) %2$s секунд(ы) %s секунд + Непрозрачность: Цвет: Цвет изменен Цвет сброшен @@ -1087,12 +1089,7 @@ Second \"item\" text" 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 --> Подменить версию приложения на 19.35.36 - Восстановление старых иконок плеера Shorts - 19.26.42 - Восстановление старых иконок панели навигации - - 18.33.40 - Восстановление Return Youtube Dislike в режиме инкогнито Shorts - 18.20.39 - Восстановление расширенного меню скорости и качества видео - 18.09.39 - Восстановление вкладки \"Библиотека\" - 17.33.42 - Восстановление старой секции плейлистов + 19.01.34 - Восстановление старых иконок панели навигации Начальная страница diff --git a/patches/src/main/resources/addresources/values-si-rLK/strings.xml b/patches/src/main/resources/addresources/values-si-rLK/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-si-rLK/strings.xml +++ b/patches/src/main/resources/addresources/values-si-rLK/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-sk-rSK/strings.xml b/patches/src/main/resources/addresources/values-sk-rSK/strings.xml index 2ee10f115..1bcaf0de3 100644 --- a/patches/src/main/resources/addresources/values-sk-rSK/strings.xml +++ b/patches/src/main/resources/addresources/values-sk-rSK/strings.xml @@ -798,7 +798,6 @@ Nastavenia → Prehrávanie → Automatické prehrávanie ďalšieho videa"Nepáči sa mi Nepáči sa mi nie sú zobrazené Zobrazovať, že sa mi nepáči v Shorts videách - Hodnotenia Nepáči sa mi to na Shorts sú zobrazené "Hodnotenia Nepáči sa mi to na Shorts sú zobrazené Obmedzenie: Hodnotenia Nepáči sa mi to sa nemusia zobraziť v anonymnom režime" @@ -993,6 +992,8 @@ Už existuje" Hlasovať proti Zmeniť kategóriu Nie sú dostupné žiadne segmenty pre hlasovanie + + %1$s do %2$s Vyberte kategóriu segmentu Kategória je v nastaveniach zakázaná. Povoľte odoslanie kategórie. Nový SponsorBlock segment @@ -1040,6 +1041,7 @@ Pripravené na odoslanie?" %1$s hodín %2$s minút %1$s minút %2$s sekúnd %s sekúnd + Priehľadnosť: Farba: Farba bola zmenená Farba bola resetovaná @@ -1077,12 +1079,7 @@ Ak sa neskôr vypne, odporúča sa vymazať údaje aplikácie, aby sa zabránilo 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 --> Falošná cieľová verzia aplikácie 19.35.36 - Obnoviť staré ikony Shorts prehrávača - 19.26.42 - Obnoviť staré ikony navigácie - - 18.33.40 - Obnovenie režimu inkognito RYD na Shorts - 18.20.39 - Obnovenie rýchlosti širokouhlého videa & kvalitné menu - 18.09.39 - Záložka Obnoviť knižnicu - 17.33.42 - Obnovte starú poličku so zoznamom skladieb + 19.01.34 - Obnoviť staré ikony navigácie Nastaviť úvodnú stránku diff --git a/patches/src/main/resources/addresources/values-sl-rSI/strings.xml b/patches/src/main/resources/addresources/values-sl-rSI/strings.xml index 20ba06162..f995735b8 100644 --- a/patches/src/main/resources/addresources/values-sl-rSI/strings.xml +++ b/patches/src/main/resources/addresources/values-sl-rSI/strings.xml @@ -805,7 +805,6 @@ Nastavitve → Predvajanje → Samodejno predvajanje naslednjega videoposnetka"< Všečkov ne so prikazani Všečkov ne niso prikazani Pokaži všečkov ne na Shorts - Število »Ni mi všeč« pri elementih Shorts je prikazano "Število »Ni mi všeč« pri elementih Shorts je prikazano Omejitev: Število »Ni mi všeč« se morda ne bo prikazalo v načinu brez beleženja zgodovine" @@ -1002,6 +1001,8 @@ Uporabniški ID je, kot je geslo, zato ga nikoli ne delite." Glasuj navzdol Spremeni kategorijo Za glasovanje ni nobenih segmentov + + %1$s do %2$s Izberi kategorijo segmenta Kategorija je v nastavitvah onemogočena. Omogoči kategorijo, da lahko oddaš. Nov segment SponsorBlocka @@ -1049,6 +1050,7 @@ Ali ste pripravljeni na oddajo?" %1$s ur %2$s minut %1$s minut %2$s sekund %s sekund + Prosojnost: Barva: Barva spremenjena Barva ponastavljena @@ -1086,12 +1088,7 @@ To bo spremenilo videz in funkcije aplikacije, vendar se lahko pojavijo neznani 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 --> Cilj spoofa različice aplikacije 19.35.36 - Obnovi stare ikone predvajalnika Shorts - 19.26.42 - Obnovi stare ikone za krmarjenje - - 18.33.40 - Obnovi RYD v načinu inkognito za Shorts - 18.20.39 - Obnovi meni hitrosti in kakovosti videa - 18.09.39 - Obnovi zavihek knjižnice - 17.33.42 - Obnovi staro polico seznamov predvajanja + 19.01.34 - Obnovi stare ikone za krmarjenje Nastavi začetno stran diff --git a/patches/src/main/resources/addresources/values-sq-rAL/strings.xml b/patches/src/main/resources/addresources/values-sq-rAL/strings.xml index 0c3abe5c9..a4b97c7d7 100644 --- a/patches/src/main/resources/addresources/values-sq-rAL/strings.xml +++ b/patches/src/main/resources/addresources/values-sq-rAL/strings.xml @@ -805,7 +805,6 @@ Cilësimet → Luajtja → Luaj automatikisht videon tjetër" \"Nuk më pëlqen\" janë të dukshme \"Nuk më pëlqen\" nuk janë të dukshme Shfaq \"Nuk më pëlqen\" në Shorts - Mospëlqimet në Shorts janë të shfaqura "Mospëlqimet në Shorts janë të shfaqura Kufizimi: Mospëlqimet mund të mos shfaqen në modalitetin incognito" @@ -1002,6 +1001,8 @@ Ekziston tashmë" Voto poshtë Ndrysho kategorinë Nuk ka segmente për të votuar + + %1$s në %2$s Zgjidhni kategorinë e segmentit Kategoria është e çaktivizuar në cilësime. Aktivizo kategorinë për të dorëzuar. Segment i ri SponsorBlock @@ -1048,6 +1049,7 @@ Gati per te dhene?" %1$s orë %2$s minuta %1$s minuta %2$s sekonda %s sekonda + Opaciteti: Ngjyra: Ngjyra është ndryshuar Ngjyra u rikthye @@ -1085,12 +1087,7 @@ Nëse më vonë është çaktivizuar, është e rekomanduar të fshiheni të dh 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 --> Shënjestër e versionit të aplikacionit të mashtuar 19.35.36 - Rikthe ikonat e vjetra të lojtarit Shorts - 19.26.42 - Ristauro ikonave te vjetra te navigimit - - 18.33.40 - Rikthe RYD në modin incognito të Shorts - 18.20.39 - Rikthe menunë e shpejtësisë dhe cilësisë së videos së gjerë - 18.09.39 - Rikthe skedën e bibliotekës - 17.33.42 - Rikthe raftin e vjetër të listës së riprodhimit + 19.01.34 - Ristauro ikonave te vjetra te navigimit Vendos faqen e fillimit diff --git a/patches/src/main/resources/addresources/values-sr-rCS/strings.xml b/patches/src/main/resources/addresources/values-sr-rCS/strings.xml index 7a7277ba0..79d077397 100644 --- a/patches/src/main/resources/addresources/values-sr-rCS/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rCS/strings.xml @@ -805,7 +805,6 @@ Podešavanja → Reprodukcija → Automatski pusti sledeći video" Nesviđanja su prikazana Nesviđanja nisu prikazana Prikaži nesviđanja na Shorts videima - Nesviđanja na Shorts videima su prikazana "Nesviđanja na Shorts videima su prikazana Ograničenje: Nesviđanja se možda neće pojaviti u režimu bez arhiviranja" @@ -1002,6 +1001,8 @@ Već postoji" Glasaj protiv Promeni kategoriju Nema nijednog segmenta za glasanje + + %1$s do %2$s Izaberite kategoriju segmenta Kategorija je onemogućena u podešavanjima. Omogućite kategoriju da biste podneli. Novi SponsorBlock segment @@ -1049,6 +1050,7 @@ Spreman za podnošenje?" %1$s sati %2$s minuta %1$s minuta %2$s sekundi %s sekundi + Neprozirnost: Boja: Boja promenjena Boja resetovana @@ -1086,12 +1088,7 @@ Ako se kasnije isključi, preporučuje se da izbrišete podatke aplikacije da bi 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 --> Ciljna verzija aplikacije za lažiranje 19.35.36 - Vraća stare ikonice Shorts plejera - 19.26.42 - Vraća stare ikonice navigacije - - 18.33.40 - Vraća Return YouTube Dislike u Shorts videima u režimu bez arhiviranja - 18.20.39 - Vraća širok meni za brzinu i kvalitet videa - 18.09.39 - Vraća karticu zbirke - 17.33.42 - Vraća staru policu plejliste + 19.01.34 - Vraća stare ikonice navigacije Polazna stranica diff --git a/patches/src/main/resources/addresources/values-sr-rSP/strings.xml b/patches/src/main/resources/addresources/values-sr-rSP/strings.xml index 4eb71c3bd..43ac7dc65 100644 --- a/patches/src/main/resources/addresources/values-sr-rSP/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rSP/strings.xml @@ -805,7 +805,6 @@ Second \"item\" text" Несвиђања су приказана Несвиђања нису приказана Прикажи несвиђања на Shorts видеима - Несвиђања на Shorts видеима су приказана "Несвиђања на Shorts видеима су приказана Ограничење: Несвиђања се можда неће појавити у режиму без архивирања" @@ -1002,6 +1001,8 @@ Second \"item\" text" Гласај против Промени категорију Нема ниједног сегмента за гласање + + %1$s до %2$s Изаберите категорију сегмента Категорија је онемогућена у подешавањима. Омогућите категорију да бисте поднели. Нови SponsorBlock сегмент @@ -1049,6 +1050,7 @@ Second \"item\" text" %1$s сати %2$s минута %1$s минута %2$s секунди %s секунди + Непрозирност: Боја: Боја промењена Боја ресетована @@ -1086,12 +1088,7 @@ Second \"item\" text" 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 --> Циљна верзија апликације за лажирање 19.35.36 - Враћа старе иконице Shorts плејера - 19.26.42 - Враћа старе иконице навигације - - 18.33.40 - Враћа Return YouTube Dislike у Shorts видеима у режиму без архивирања - 18.20.39 - Враћа широк мени за брзину и квалитет видеа - 18.09.39 - Враћа картицу збирке - 17.33.42 - Враћа стару полицу плејлисте + 19.01.34 - Враћа старе иконице навигације Полазна страница diff --git a/patches/src/main/resources/addresources/values-sv-rSE/strings.xml b/patches/src/main/resources/addresources/values-sv-rSE/strings.xml index c28161fff..2e37129c7 100644 --- a/patches/src/main/resources/addresources/values-sv-rSE/strings.xml +++ b/patches/src/main/resources/addresources/values-sv-rSE/strings.xml @@ -805,7 +805,6 @@ Inställningar → Uppspelning → Spela upp nästa video automatiskt" Ogilla är synliga Ogilla visas inte Visa ogillande på Shorts - Ogillanden på Shorts visas "Ogillanden visas på Shorts Begränsning: Ogillanden kanske inte visas i inkognitoläge" @@ -935,7 +934,7 @@ Ditt användar-ID är som ett lösenord och det bör aldrig delas." Liknande sponsor men för obetald eller egen marknadsföring. Inkluderar avsnitt om varor, donationer eller information om vem de samarbetade med Interaktionspåminnelse (Prenumerera) En kort påminnelse om att gilla, prenumerera eller följa dem mitt i innehållet. Om den är lång eller om något specifikt, bör den istället vara under självfrämjande - Markera + Höjdpunkt Den del av videon som de flesta letar efter Paus/introduktionsanimation Ett intervall utan faktiskt innehåll. Kan vara en paus, statisk ram eller upprepande animation. Inkluderar inte övergångar som innehåller information @@ -948,11 +947,11 @@ Ditt användar-ID är som ett lösenord och det bör aldrig delas." Musik: Icke-musiksektionen Endast för användning i musikvideor. Sektioner av musikvideor utan musik, som inte redan omfattas av en annan kategori Hoppa - Markera + Höjdpunkt Hoppa över sponsor Hoppa över kampanjerbjudande Hoppa över interagera - Hoppa över för att markera + Hoppa till höjdpunkten Hoppa över intro Hoppa över paus Hoppa över paus @@ -966,7 +965,7 @@ Ditt användar-ID är som ett lösenord och det bör aldrig delas." Hoppade över sponsor Hoppade över självmarknadsföring Överhoppad irriterande påminnelse - Hoppas över för att markera + Hoppade till höjdpunkten Hoppade över intro Överhoppad paus Överhoppad paus @@ -1002,6 +1001,8 @@ Redan finns" Nedrösta Ändra kategori Det finns inga segment att rösta på + + %1$s till %2$s Välj segmentkategori Kategorin är inaktiverad i inställningar. Aktivera kategori för att skicka. Nytt Sponsorblock-segment @@ -1049,6 +1050,7 @@ Redo att skicka in?" %1$s timmar %2$s minuter %1$s minuter %2$s sekunder %s sekunder + Opacitet: Färg: Färg ändrad Färg återställning @@ -1086,12 +1088,7 @@ Om det senare stängs av rekommenderas det att rensa appens data för att förhi 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 --> Spoof app-versionsmål 19.35.36 - Återställ gamla Shorts-spelarikoner - 19.26.42 - Återställ originalnavigeringsbilder - - 18.33.40 - Återställ RYD på Shorts inkognitoläge - 18.20.39 - Återställ videons hastighet & kvalitetsmeny - 18.09.39 - Återställ biblioteksfliken - 17.33.42 - Återställ gamla spellisthyllor + 19.01.34 - Återställ originalnavigeringsbilder Ställ in startsida diff --git a/patches/src/main/resources/addresources/values-sw-rKE/strings.xml b/patches/src/main/resources/addresources/values-sw-rKE/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-sw-rKE/strings.xml +++ b/patches/src/main/resources/addresources/values-sw-rKE/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-ta-rIN/strings.xml b/patches/src/main/resources/addresources/values-ta-rIN/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-ta-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ta-rIN/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-te-rIN/strings.xml b/patches/src/main/resources/addresources/values-te-rIN/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-te-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-te-rIN/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-th-rTH/strings.xml b/patches/src/main/resources/addresources/values-th-rTH/strings.xml index 88f4038e0..dc79b83d5 100644 --- a/patches/src/main/resources/addresources/values-th-rTH/strings.xml +++ b/patches/src/main/resources/addresources/values-th-rTH/strings.xml @@ -803,7 +803,6 @@ Second \"item\" text" แสดง \"ไม่ชอบ\" ไม่แสดง \"ไม่ชอบ\" แสดง \"ไม่ชอบ\" ใน Shorts - การไม่ถูกใจใน Shorts แสดงอยู่ "การไม่ถูกใจใน Shorts แสดงอยู่ ข้อจำกัด: การไม่ถูกใจอาจไม่ปรากฏในโหมดไม่ระบุตัวตน" @@ -1001,6 +1000,8 @@ User id ของคุณเหมือนกับรหัสผ่าน โหวตลง เปลี่ยนหมวดหมู่ ไม่มีส่วนใดจะให้โหวต + + %1$s ถึง %2$s กรุณาเลือกหมวดหมู่ของส่วน หมวดหมู่ถูกปิดใช้งานใน การตั้งค่า เปิดใช้งานหมวดหมู่เพื่อส่ง SponsorBlockส่วนใหม่ @@ -1048,6 +1049,7 @@ User id ของคุณเหมือนกับรหัสผ่าน %1$s ชั่วโมง %2$s นาที %1$s นาที %2$s วินาที %s วินาที + ความทึบ: สี: เปลื่ยนสีแล้ว สีเปลื่ยนเป็นค่าเริ่มต้นแล้ว @@ -1085,12 +1087,7 @@ User id ของคุณเหมือนกับรหัสผ่าน 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 --> เป้าหมายการปลอมแปลงเวอร์ชันแอป 19.35.36 - คืนค่าไอคอนเครื่องเล่น Shorts เก่า - 19.26.42 - แบนเพิ่มยุธการพันเข้าเนียงเลขนระบเจะหวัด - - 18.33.40 - คืนค่า RYD บนโหมดไม่ระบุตัวตน Shorts - 18.20.39 - คืนค่าเมนูความเร็วและคุณภาพวิดีโอแบบกว้าง - 18.09.39 - คืนค่าแท็บคลัง - 17.33.42 - คืนค่าชั้นวางเพลย์ลิสต์เก่า + 19.01.34 - แบนเพิ่มยุธการพันเข้าเนียงเลขนระบเจะหวัด ตั้งค่าหน้าเริ่มต้น diff --git a/patches/src/main/resources/addresources/values-tr-rTR/strings.xml b/patches/src/main/resources/addresources/values-tr-rTR/strings.xml index 3dac0c7dc..bc73a89a9 100644 --- a/patches/src/main/resources/addresources/values-tr-rTR/strings.xml +++ b/patches/src/main/resources/addresources/values-tr-rTR/strings.xml @@ -805,7 +805,6 @@ Ayarlar → Oynatma → Sonraki videoyu otomatik oynat" Beğenilmeme sayıları gösteriliyor Beğenilmeme sayıları gösterilmiyor Shorts\'ta beğenilmeme sayılarını göster - Shorts\'ta beğenilmeme sayıları gösteriliyor "Shorts'ta beğenilmeme sayıları gösteriliyor Kısıtlama: Beğenilmeme sayıları gizli modda görünmeyebilir" @@ -1003,6 +1002,8 @@ Aynısı mevcut" Olumsuz oy Kategori değiştir Oylanılacak bir kısım yok + + %1$s - %2$s Kısım kategorisini seçin Kategori, ayarlarda devre dışı. Göndermek için etkinleştirin. Yeni SponsorBlock kısmı @@ -1050,6 +1051,7 @@ Göndermeye hazır mısınız?" %1$s saat %2$s dakika %1$s dakika %2$s saniye %s saniye + Opaklık: Renk: Renk değiştirildi Renk sıfırlandı @@ -1087,12 +1089,7 @@ Daha sonra kapatılırsa, arayüz hatalarını önlemek için uygulama verilerin 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 --> Uygulama sürümü taklidi hedefi 19.35.36 - Eski Shorts oynatıcı simgelerini geri getir - 19.26.42 - Eski gezinti simgelerini geri getir - - 18.33.40 - Gizli modda Shorts için RYD\'yi geri getir - 18.20.39 - Geniş video hızı & kalitesi menüsünü geri getir - 18.09.39 - Kitaplık sekmesini geri getir - 17.33.42 - Eski oynatma listesi rafını geri getir + 19.01.34 - Eski gezinti simgelerini geri getir Başlangıç sayfasını ayarla diff --git a/patches/src/main/resources/addresources/values-uk-rUA/strings.xml b/patches/src/main/resources/addresources/values-uk-rUA/strings.xml index 52de1cb5f..a63fbe8a3 100644 --- a/patches/src/main/resources/addresources/values-uk-rUA/strings.xml +++ b/patches/src/main/resources/addresources/values-uk-rUA/strings.xml @@ -789,7 +789,7 @@ Second \"item\" text" Затемнення плеєра при натисканні - Значення непрозорості затемнення при натисканні на плеєр в межах від 0 до 100, де 0 це прозоро + Значення затемнення при натисканні на плеєр в межах від 0 до 100, де 0 це прозоро Значення затемнення плеєра має бути в межах від 0 до 100 @@ -805,7 +805,6 @@ Second \"item\" text" Відмітки \"Не подобається\" показуються Відмітки \"Не подобається\" приховано Відмітки \"Не подобається\" в Shorts - Відмітки \"Не подобається\" в Shorts показуються "Відмітки \"Не подобається\" в Shorts показуються Обмеження: Відмітки \"Не подобається\" не можуть показуватися в анонімному режимі" @@ -1002,6 +1001,8 @@ Second \"item\" text" Проголосувати \"проти\" Змінити категорію Немає сегментів для голосування + + %1$s до %2$s Вибрати категорію сегмента Категорія вимкнена у налаштуваннях. Увімкніть категорію, щоб надіслати. Новий сегмент SponsorBlock @@ -1049,6 +1050,7 @@ Second \"item\" text" %1$s годин(и) %2$s хвилин(и) %1$s хвилин(и) %2$s секунд(и) %s секунд(и) + Непрозорість: Колір: Колір змінено Колір скинуто @@ -1086,12 +1088,7 @@ Second \"item\" text" 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 --> Підробити версію програми на 19.35.36 - Відновлення старих іконок плеєра Shorts - 19.26.42 - Відновлення старих іконок панелі навігації - - 18.33.40 - Відновлення RYD в анонімному режимі Shorts - 18.20.39 - Відновлення розширеного меню швидкості та якості відео - 18.09.39 - Відновлення вкладки Бібліотека - 17.33.42 - Відновлення старого інтерфейсу списку відтворення + 19.01.34 - Відновлення старих іконок панелі навігації Початкова сторінка diff --git a/patches/src/main/resources/addresources/values-ur-rIN/strings.xml b/patches/src/main/resources/addresources/values-ur-rIN/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-ur-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ur-rIN/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-uz-rUZ/strings.xml b/patches/src/main/resources/addresources/values-uz-rUZ/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-uz-rUZ/strings.xml +++ b/patches/src/main/resources/addresources/values-uz-rUZ/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values-vi-rVN/strings.xml b/patches/src/main/resources/addresources/values-vi-rVN/strings.xml index b317717a7..58c678880 100644 --- a/patches/src/main/resources/addresources/values-vi-rVN/strings.xml +++ b/patches/src/main/resources/addresources/values-vi-rVN/strings.xml @@ -110,8 +110,8 @@ Nhấn nút tiếp tục và cho phép thay đổi tối ưu hóa." Nhật ký gỡ lỗi bao gồm truy vết stack Nhật ký gỡ lỗi không bao gồm truy vết stack Hiện thông báo nổi về lỗi ReVanced - Toast hiển thị nếu xảy ra lỗi - Toast không hiển thị nếu xảy ra lỗi + Thông báo nổi được hiện nếu xảy ra lỗi + Thông báo nổi không được hiện nếu xảy ra lỗi "Tắt thông báo lỗi sẽ ẩn tất cả thông báo lỗi của ReVanced. Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ nào." @@ -157,7 +157,7 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n Nhãn được hiện - Ẩn nút \'Hiển thị thêm\' + Ẩn nút \'Hiện thêm\' Nút được ẩn Nút được hiện Ẩn phản ứng theo thời gian @@ -171,7 +171,7 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n Kệ danh mục được đề xuất được hiện Ẩn thẻ có thể mở rộng bên dưới video Thẻ có thể mở rộng bị ẩn - Thẻ có thể mở rộng được hiển thị + Thẻ có thể mở rộng được hiện Ẩn bài đăng cộng đồng Bài đăng cộng đồng được ẩn Bài đăng cộng đồng được hiện @@ -189,7 +189,7 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n Nguyên tắc cộng đồng được hiện Ẩn nguyên tắc cộng đồng cho người đăng ký Nguyên tắc cộng đồng cho người đăng ký được ẩn - Nguyên tắc cộng đồng dành cho người đăng ký được hiển thị + Nguyên tắc cộng đồng dành cho người đăng ký được hiện Ẩn kệ hội viên kênh Kệ hội viên kênh được ẩn Kệ hội viên kênh được hiện @@ -201,7 +201,7 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n Bảng thông tin được hiện Ẩn bảng thông tin y tế Bảng thông tin y tế được ẩn - Bảng thông tin y tế được hiển thị + Bảng thông tin y tế được hiện Ẩn nút kênh Nút kênh được ẩn Nút kênh được hiện @@ -233,8 +233,8 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n Phần chương được ẩn Phần chương được hiện Ẩn \'Nội dung này được tạo như thế nào\' - Phần Nội dung này được tạo như thế nào bị ẩn - Phần Nội dung này được tạo như thế nào được hiển thị + Phần Nội dung này được tạo như thế nào được ẩn + Phần Nội dung này được tạo như thế nào được hiện Ẩn \'Khám phá podcast\' Phần Khám phá podcast được ẩn Phần Khám phá podcast được hiện @@ -256,15 +256,15 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n Đã hiện trong bảng tin Ẩn trong kết quả tìm kiếm Bị ẩn trong kết quả tìm kiếm - Được hiển thị trong kết quả tìm kiếm + Được hiện trong kết quả tìm kiếm Ẩn trong video liên quan Đã ẩn trong video liên quan Đã hiện trong video liên quan Bình luận Ẩn hoặc hiện các thành phần bình luận Ẩn \'Tóm tắt trò chuyện\' - Tóm tắt trò chuyện bị ẩn - Tóm tắt trò chuyện được hiển thị + Tóm tắt trò chuyện được ẩn + Tóm tắt trò chuyện được hiện Ẩn tiêu đề \'Bình luận bởi hội viên\' Tiêu đề Bình luận bởi hội viên được ẩn Tiêu đề Bình luận bởi hội viên được hiện @@ -275,7 +275,7 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n Nút Tạo video ngắn được ẩn Nút Tạo video ngắn được hiện Ẩn nút biểu tượng cảm xúc và dấu thời gian - Nút biểu tượng cảm xúc và dấu thời gian bị ẩn + Nút biểu tượng cảm xúc và dấu thời gian được ẩn Nút biểu tượng cảm xúc và dấu thời gian được hiện Ẩn xem trước bình luận Xem trước bình luận được ẩn @@ -287,7 +287,7 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n Ẩn YouTube Doodles Thanh tìm kiếm Doodles được ẩn Thanh tìm kiếm Doodles được hiện - "YouTube Doodles được hiển thị vài ngày mỗi năm. + "YouTube Doodles được hiện vài ngày mỗi năm. Nếu hiện đang hiển thị Doodle trong khu vực của bạn và cài đặt ẩn này được bật, thì thanh lọc bên dưới thanh tìm kiếm cũng sẽ bị ẩn." Bộ lọc tùy chỉnh @@ -315,7 +315,7 @@ Nếu hiện đang hiển thị Doodle trong khu vực của bạn và cài đ This is because keywords can be in any language, and showing an example in the localized script helps convey this. --> "Từ khóa và cụm từ cần ẩn, cách nhau bằng dòng mới -Từ khóa có thể là tên kênh hoặc bất kỳ văn bản nào hiển thị trong tiêu đề video +Từ khóa có thể là tên kênh hoặc bất kỳ văn bản nào hiện trong tiêu đề video Từ có chữ in hoa ở giữa phải được nhập cùng với chữ viết hoa (ví dụ: iPhone, TikTok, LeBlanc)" Giới thiệu về bộ lọc từ khóa @@ -324,7 +324,7 @@ Từ có chữ in hoa ở giữa phải được nhập cùng với chữ viết Hạn chế • Video ngắn không thể bị ẩn theo tên kênh • Một số thành phần giao diện người dùng có thể không bị ẩn -• Tìm kiếm từ khóa có thể không hiển thị kết quả" +• Tìm kiếm từ khóa có thể không hiện kết quả" Khớp toàn bộ từ Việc đặt từ/cụm từ cần lọc trong dấu ngoặc kép sẽ ngăn chặn các kết quả chỉ trùng một phần với tiêu đề video và tên kênh<br><br>Ví dụ,<br><b>\"ai\"</b> sẽ ẩn video: <b>AI hoạt động ra sao?</b><br>nhưng sẽ không ẩn: <b>Hai lai nghĩa là gì?</b> @@ -358,16 +358,16 @@ Tính năng này chỉ khả dụng cho các thiết bị cũ hơn" Biểu ngữ được hiện Ẩn biểu ngữ cửa hàng ở cuối màn hình Biểu ngữ Cửa hàng bị ẩn - Biểu ngữ Cửa hàng được hiển thị + Biểu ngữ Cửa hàng được hiện Ẩn kệ cửa hàng Kệ cửa hàng được ẩn Kệ cửa hàng được hiện Ẩn các liên kết mua hàng trong mô tả video - Các liên kết mua sắm trong phần mô tả video bị ẩn + Các liên kết mua sắm trong phần mô tả video được ẩn Các liên kết mua sắm trong phần mô tả video được hiện Ẩn nút \'Đến Mua sắm\' trên trang của kênh - Nút trên trang kênh bị ẩn + Nút trên trang kênh được ẩn Nút trên trang kênh được hiện Ẩn kết quả tìm kiếm từ web Kết quả tìm kiếm từ web được ẩn @@ -392,10 +392,10 @@ Tính năng này chỉ khả dụng cho các thiết bị cũ hơn" Đã chép URL vào bảng nhớ tạm Đã chép URL với dấu thời gian Hiện nút sao chép url video - Nút được hiển thị. Chạm để sao chép video URL. Chạm và giữ để sao chép với dấu thời gian + Nút được hiện. Chạm để sao chép video URL. Chạm và giữ để sao chép với dấu thời gian Nút không được hiện Hiện nút sao chép URL với dấu thời gian - Nút được hiển thị. Chạm để sao chép video URL với dấu thời gian. Chạm và giữ để sao chép video không dấu thời gian + Nút được hiện. Chạm để sao chép video URL với dấu thời gian. Chạm và giữ để sao chép video không dấu thời gian Nút không được hiện @@ -438,7 +438,7 @@ Tính năng này chỉ khả dụng cho các thiết bị cũ hơn" "Đã bật vuốt âm lượng toàn màn hình Điều chỉnh âm lượng bằng cách vuốt dọc ở bên phải màn hình" - Vuốt âm lượng đã tắt + Vuốt âm lượng được tắt Bật cử chỉ nhân-để-vuốt Nhân-để-vuốt đã bật Nhân-để-vuốt đã tắt @@ -458,12 +458,12 @@ Tính năng này chỉ khả dụng cho các thiết bị cũ hơn" Độ mờ vuốt phải nằm trong khoảng từ 0-100 Độ rộng ngưỡng vuốt Độ rộng của ngưỡng vuốt để thực hiện cử chỉ vuốt - Hiển thị lớp phủ hình tròn - Đã hiển thị lớp phủ hình tròn - Đã hiển thị lớp phủ ngang + Hiện lớp phủ hình tròn + Lớp phủ tròn được hiện + Lớp phủ ngang được hiện Bật kiểu tối giản - Đã bật kiểu lớp phủ tối giản - Đã tắt kiểu lớp phủ tối giản + Lớp phủ tối giản được bật + Lớp phủ tối giản được tắt Bật vuốt để thay đổi video Vuốt trong chế độ toàn màn hình sẽ chuyển sang video tiếp theo/trước Vuốt trong chế độ toàn màn hình sẽ không chuyển sang video tiếp theo/trước @@ -522,7 +522,7 @@ Tính năng này chỉ khả dụng cho các thiết bị cũ hơn" Ẩn Shorts Nút Shorts được ẩn - Nút Shorts được hiển thị + Nút Shorts được hiện Ẩn Tạo mới Nút tạo được ẩn @@ -532,8 +532,8 @@ Tính năng này chỉ khả dụng cho các thiết bị cũ hơn" Nút đăng ký được ẩn Nút Đăng ký được hiện Ẩn Thông báo - Nút Thông báo đang ẩn - Nút Thông báo đang hiện + Nút Thông báo được ẩn + Nút Thông báo được hiện Chuyển vị nút Tạo với nút Thông báo "Nút tạo được chuyển đổi với nút Thông báo @@ -617,7 +617,7 @@ Nếu việc thay đổi cài đặt này không có hiệu lực, hãy thử ch Các nút được hiện Ẩn nút Phát sóng Nút Truyền được ẩn - Nút Truyền được hiển thị + Nút Truyền được hiện Ẩn nút Chú thích Nút phụ đề được ẩn @@ -639,7 +639,7 @@ Nếu việc thay đổi cài đặt này không có hiệu lực, hãy thử ch Ẩn thẻ thông tin Thẻ thông tin được ẩn - Thẻ thông tin được hiển thị + Thẻ thông tin được hiện Tắt chuyển động cuộn số @@ -656,21 +656,21 @@ Nếu việc thay đổi cài đặt này không có hiệu lực, hãy thử ch Trình phát Shorts - Ẩn hoặc hiển thị các thành phần trong trình phát Shorts + Ẩn hoặc hiện các thành phần trong trình phát Shorts Ẩn Shorts trong bảng tin trang chính Ẩn trong nguồn cấp dữ liệu trang chủ và video liên quan - Hiển thị trong nguồn cấp dữ liệu trang chủ và video liên quan + Hiện trong nguồn cấp dữ liệu trang chủ và video liên quan Ẩn Shorts trong bảng tin đăng ký Bị ẩn trong nguồn đăng ký - Được hiển thị trong nguồn đăng ký + Được hiện trong nguồn đăng ký Ẩn Shorts trong kết quả tìm kiếm Bị ẩn trong kết quả tìm kiếm - Được hiển thị trong kết quả tìm kiếm + Được hiện trong kết quả tìm kiếm Ẩn Shorts trong lịch sử xem Bị ẩn trong lịch sử xem - Đã hiển thị trong lịch sử xem + Đã hiện trong lịch sử xem Ẩn nút Tham gia Nút tham gia được ẩn @@ -687,7 +687,7 @@ Nếu việc thay đổi cài đặt này không có hiệu lực, hãy thử ch Nút mua sắm được hiện Ẩn nút Mua Super Thanks Nút Super Thanks bị ẩn - Nút Super Thanks được hiển thị + Nút Super Thanks được hiện Ẩn sản phẩm được gắn thê Sản phẩm được gắn thẻ được ẩn Sản phẩm được gắn thẻ được hiện @@ -763,7 +763,7 @@ Nếu việc thay đổi cài đặt này không có hiệu lực, hãy thử ch Có thể thay đổi Tự động phát trong phần cài đặt YouTube: Cài đặt → Phát lại → Tự động phát video tiếp theo" - Video được đề xuất ở màn hình kết thúc đang hiển thị + Video được đề xuất ở màn hình kết thúc được hiện Ẩn mốc thời gian video @@ -796,7 +796,7 @@ Cài đặt → Phát lại → Tự động phát video tiếp theo" Lượt ko thích tạm thời ko khả dụng (API hết giờ) Lượt không thích không khả dụng ( trạng thái %d) - Không có lượt không thích (giới hạn API máy khách) + Lượt không thích không khả dụng (giới hạn API máy khách) Số lượt không thích không khả dụng (%s) Tải lại video để không thích bằng ReturnYouTubeDislike @@ -805,7 +805,6 @@ Cài đặt → Phát lại → Tự động phát video tiếp theo" Số lượt không thích được hiện Số lượt không thích không được hiện Hiện số lượt không thích trong Shorts - Số lượt không thích trên Shorts được hiện "Số lượt không thích trên Shorts được hiện Hạn chế: Số lượt không thích có thể không xuất hiện ở chế độ ẩn danh" @@ -815,10 +814,10 @@ Hạn chế: Số lượt không thích có thể không xuất hiện ở chế Số lượt không thích được hiện dưới dạng số Nút Thích thu gọn - Nút thích được thiết kế để tối ưu độ rộng hiển thị + Nút thích được thiết kế để tối ưu độ rộng Nút thích được thiết kế để tối ưu ngoại hình tốt nhất - Hiển thị lượt thích ước tính - Đã hiển thị lượt thích ước tính + Hiện lượt thích ước tính + Lượt thích ước tính được hiện Đã ẩn lượt thích ước tính Hiện thông báo nổi nếu API không khả dụng Thông báo nổi được hiện nếu Return YouTube Dislike không khả dụng @@ -875,13 +874,13 @@ Tính năng này hoạt động tốt nhất với chất lượng video 720p tr Các nút và điều khiển được bo tròn Sử dụng nút Bỏ qua thu gọn - Nút bỏ qua phân đoạn được thiết kế để tối ưu độ rộng hiển thị + Nút Bỏ qua được thiết kế để tối ưu độ rộng Nút bỏ qua phân đoạn được thiết kế để tối ưu ngoại hình tốt nhất Tự động ẩn nút Bỏ qua Nút bỏ qua ẩn sau vài giây Nút bỏ qua được hiện cho toàn bộ phân đoạn - Hiện một thông báo toast khi bỏ qua - Hiển thị thông báo nổi mỗi khi tự động bỏ qua phân đoạn. Nhấn vào đây để xem ví dụ + Hiện một thông báo nổi khi bỏ qua + Hiện thông báo nổi mỗi khi tự động bỏ qua phân đoạn. Nhấn vào đây để xem ví dụ Thông báo nổi không được hiện. Nhấn vào đây để xem ví dụ Hiện thời lượng video không có phân đoạn Thời lượng video trừ đi tất cả phân đoạn, được hiện trong dấu ngoặc đơn bên cạnh thời lượng đầy đủ của video @@ -981,7 +980,7 @@ ID người dùng của bạn giống như mật khẩu và không bao giờ đ Tự động bỏ qua Tự động bỏ qua một lần Hiện nút Bỏ qua - Hiển thị trên thanh tiến trình + Hiện trên thanh tiến trình Tắt Không thể gửi phân đoạn: %s SponsorBlock bị sập tạm thời @@ -1002,6 +1001,8 @@ ID người dùng của bạn giống như mật khẩu và không bao giờ đ Phản đối Thay đổi danh mục Không có phân đoạn nào để bình chọn + + %1$s đến %2$s Chọn danh mục phân đoạn Danh mục này bị tắt trong cài đặt. Bật danh mục để gửi. Tạo phân đoạn SponsorBlock mới @@ -1049,6 +1050,7 @@ Bạn đã sẵn sàng gửi?" %1$s giờ %2$s phút %1$s phút %2$s giây %s giây + Độ mờ: Màu: Màu sắc đã được thay đổi Đặt lại màu sắc @@ -1086,12 +1088,7 @@ Nếu sau này tắt đi, bạn nên xóa dữ liệu ứng dụng để tránh 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 --> Phiên bản giả mạo mục tiêu 19.35.36 - Khôi phục biểu tượng trình phát Shorts cũ - 19.26.42 - Cập nhật lại biểu tượng điều hướng cũ - - 18.33.40 - Khôi phục RYD trong Shorts chế độ ẩn danh - 18.20.39 - Khôi phục trình đơn tốc độ & chất lượng cho video rộng - 18.09.39 - Khôi phục thẻ thư viện - 17.33.42 - Khôi phục kệ danh sách phát cũ + 19.01.34 - Cập nhật lại biểu tượng điều hướng cũ Đặt trang bắt đầu @@ -1225,7 +1222,7 @@ Bật tính năng này có thể khắc phục hình ảnh bị thiếu khi bị Chụp tĩnh "DeArrow cung cấp hình thu nhỏ có nguồn gốc từ cộng đồng cho video YouTube. Những hình thu nhỏ này thường liên quan hơn so với những hình thu nhỏ do YouTube cung cấp -Nếu được bật, URL video sẽ được gửi đến máy chủ API và không có dữ liệu nào khác được gửi. Nếu video không có hình thu nhỏ DeArrow, thì hình thu nhỏ gốc hoặc ảnh chụp tĩnh sẽ được hiển thị +Nếu được bật, URL video sẽ được gửi đến máy chủ API và không có dữ liệu nào khác được gửi. Nếu video không có hình thu nhỏ DeArrow, thì hình thu nhỏ gốc hoặc ảnh chụp tĩnh sẽ được hiện Nhấn vào đây để tìm hiểu thêm về DeArrow" Hiện một thông báo nổi nếu API không khả dụng @@ -1353,9 +1350,9 @@ Bật tính năng này có thể mở khóa chất lượng video cao hơn"Video HDR đã được bật - Hiển thị trình đơn chất lượng video nâng cao - Trình đơn chất lượng video nâng cao được hiển thị - Trình đơn chất lượng video nâng cao không được hiển thị + Hiện trình đơn chất lượng video nâng cao + Trình đơn chất lượng video nâng cao được hiện + Trình đơn chất lượng video nâng cao không được hiện Bật vuốt để tua @@ -1383,13 +1380,13 @@ AVC có độ phân giải tối đa là 1080p, bộ giải mã âm thanh Opus k • Âm lượng ổn định không khả dụng • Video có thể kết thúc sớm hơn 1 giây" Tác dụng phụ của việc giả mạo Android - "• Menu âm thanh bị thiếu + "• Trình đơn âm thanh bị thiếu • Âm lượng ổn định không khả dụng • Tùy chọn âm thanh gốc không khả dụng" • Không có bộ giải mã video AV1 • Video dành cho trẻ em có thể không phát được khi đăng xuất hoặc ở chế độ ẩn danh - Hiển thị trong Stats for nerds - Loại máy khách được hiển thị trong Stats for nerds + Hiện trong Stats for nerds + Loại máy khách được hiện trong Stats for nerds Máy khách bị ẩn trong Stats for nerds Ngôn ngữ âm thanh mặc định của VR @@ -1401,8 +1398,8 @@ AVC có độ phân giải tối đa là 1080p, bộ giải mã âm thanh Opus k Quảng cáo âm thanh không được chặn - %s không khả dụng, quảng cáo có thể hiển thị. Hãy thử thay đổi dịch vụ chặn quảng cáo trong cài đặt. - %s đã trả về lỗi, quảng cáo có thể hiển thị. Hãy thử thay đổi dịch vụ chặn quảng cáo trong cài đặt. + %s không khả dụng, quảng cáo có thể hiện. Hãy thử thay đổi dịch vụ chặn quảng cáo trong cài đặt. + %s đã trả về lỗi, quảng cáo có thể hiện. Hãy thử thay đổi dịch vụ chặn quảng cáo trong cài đặt. Chặn quảng cáo video nhúng Đã tắt Ủy thác Luminous diff --git a/patches/src/main/resources/addresources/values-zh-rCN/strings.xml b/patches/src/main/resources/addresources/values-zh-rCN/strings.xml index f86f6c6e1..2b84f848d 100644 --- a/patches/src/main/resources/addresources/values-zh-rCN/strings.xml +++ b/patches/src/main/resources/addresources/values-zh-rCN/strings.xml @@ -805,7 +805,6 @@ Second \"item\" text" 点踩数已显示 点踩数已隐藏 在 Shorts 上显示点踩数 - Shorts 上显示“不喜欢” "Shorts 上显示“不喜欢” 限制:在隐身模式下可能不显示“不喜欢”" @@ -1003,6 +1002,8 @@ Second \"item\" text" 反对票 变更类别 没有要投票的片段 + + %1$s 到 %2$s 选择片段的类别 类别已在设置中禁用。启用类别以提交。 新的 SpongorBlock 片段 @@ -1054,6 +1055,7 @@ Second \"item\" text" %1$s 小时 %2$s 分钟 %1$s 分钟 %2$s 秒 %s 秒 + 不透明度: 颜色: 已更改颜色 重置颜色 @@ -1091,12 +1093,7 @@ Second \"item\" text" 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 --> 伪装应用程序版本为 19.35.36 - 恢复旧的 Shorts 播放器图标 - 19.26.42 - 恢复旧导航图标 - - 18.33.40 - 在隐身模式下恢复 RYD - 18.20.39 - 还原宽视频速度 & 画质菜单 - 18.09.39 - 恢复库标签 - 17.33.42 - 恢复旧的播放列表架子 + 19.01.34 - 恢复旧导航图标 设置起始页 diff --git a/patches/src/main/resources/addresources/values-zh-rTW/strings.xml b/patches/src/main/resources/addresources/values-zh-rTW/strings.xml index 1e26a2554..bbc170dbc 100644 --- a/patches/src/main/resources/addresources/values-zh-rTW/strings.xml +++ b/patches/src/main/resources/addresources/values-zh-rTW/strings.xml @@ -41,7 +41,7 @@ Second \"item\" text" 匯入 複製 將 ReVanced 設定重設為預設值 - 已匯入設定 %d + 已匯入 %d 個設定 無法匯入:%s ReVanced 語言 "部分語言的翻譯可能缺少或不完整。 @@ -241,18 +241,22 @@ Second \"item\" text" 隱藏資訊卡 已隱藏資訊卡區塊 已顯示資訊卡區塊 - 隱藏「關鍵概念」 - 關鍵概念區塊已隱藏 - 關鍵概念區塊已顯示 + 隱藏「核心概念」 + 已隱藏核心概念區塊 + 已顯示核心概念區塊 隱藏轉錄稿 已隱藏轉錄稿區塊 已顯示轉錄稿區塊 影片說明 隱藏或顯示影片說明元件 篩選列 + 隱藏或顯示動態內容、搜尋結果和相關影片中的篩選列 已在推薦內容中隱藏 已在推薦內容中隱藏 已在推薦內容中顯示 + 在搜尋結果中隱藏 + 已在搜尋結果中隱藏 + 已在搜尋結果中顯示 隱藏相關影片 已在相關影片中隱藏 已在相關影片中顯示 @@ -262,8 +266,8 @@ Second \"item\" text" 已隱藏聊天室摘要 已顯示聊天室摘要 隱藏「會員留言」標題 - 會員留言標題已隱藏 - 會員留言標題已顯示 + 已隱藏會員留言標題 + 已顯示會員留言標題 隱藏留言區 已隱藏留言區 已顯示留言區 @@ -349,6 +353,7 @@ Second \"item\" text" 隱藏自我贊助資訊卡 已隱藏自我贊助資訊卡 已顯示自我贊助資訊卡 + 隱藏「查看商品」橫幅 已隱藏橫幅 已顯示橫幅 隱藏片尾商店橫幅 @@ -457,8 +462,8 @@ Second \"item\" text" 已顯示圓形覆蓋 已顯示水平覆蓋 啟用極簡風格 - 極簡覆蓋樣式已啟用 - 極簡覆蓋樣式已停用 + 已啟用極簡覆蓋樣式 + 已停用極簡覆蓋樣式 啟用滑動切換影片 在全螢幕模式下滑動將切換到下一部/上一部影片 在全螢幕模式下滑動將不會切換到下一部/上一部影片 @@ -607,6 +612,7 @@ Second \"item\" text" 已顯示影片畫質選單頁尾 + 隱藏「上一部」和「下一部」按鈕 已隱藏按鈕 已顯示按鈕 隱藏「投影」按鈕 @@ -752,11 +758,12 @@ Second \"item\" text" 已顯示導覽列 - 隱藏結束畫面的推薦影片 - "當自動播放關閉時,結束畫面的推薦影片將被隱藏 + 隱藏片尾推薦影片 + "當自動播放關閉時,片尾推薦影片會被隱藏。 -自動播放可在 YouTube 設定中更改:設定 → 播放 → 自動播放下一部影片" - 結束畫面的推薦影片已顯示 +你可以在 YouTube 設定中變更自動播放設定: +設定 → 播放 → 自動播放下一個影片" + 已顯示片尾推薦影片 隱藏影片時間戳記 @@ -798,7 +805,6 @@ Second \"item\" text" 已顯示不喜歡人數 不顯示不喜歡人數 在 Shorts 中顯示不喜歡人數 - 已顯示 Shorts 的不喜歡次數 "已顯示 Shorts 的不喜歡人數 限制:在無痕模式下可能不會顯示不喜歡人數" @@ -810,9 +816,9 @@ Second \"item\" text" 精簡「喜歡」按鈕 「喜歡」按鈕樣式設為最小寬度 「喜歡」按鈕樣式設為最佳外觀 - 顯示預估喜歡數 - 已顯示預估喜歡數 - 已隱藏預估喜歡數 + 顯示預估喜歡人數 + 已顯示預估喜歡人數 + 已隱藏預估喜歡人數 若 API 無法使用,顯示提示 如果 Return YouTube Dislike 無法使用,則顯示提示訊息 如果 Return YouTube Dislike 無法使用,則不會顯示提示訊息 @@ -996,6 +1002,8 @@ Second \"item\" text" 倒讚 變更類別 沒有可以投票的片段 + + %1$s 至 %2$s 選擇片段的類別 已在設定中停用類別。啟用類別以提交。 新 SponsorBlock 片段 @@ -1044,6 +1052,7 @@ Second \"item\" text" %1$s 小時 %2$s 分鐘 %1$s 分鐘 %2$s 秒 %s 秒 + 不透明度: 顏色: 已變更顏色 重設顏色 @@ -1058,7 +1067,15 @@ Second \"item\" text" 預設 手機 平板電腦 - 車用 + 汽車 + "修改項目包括: + +平板電腦版面配置 +• 隱藏社群貼文 + +汽車版面配置 +• Shorts 會以一般播放器開啟 +• 動態內容會依主題和頻道整理" 偽裝應用程式版本 @@ -1073,12 +1090,7 @@ Second \"item\" text" 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 --> 應用程式偽裝目標版本 19.35.36 - 還原舊版 Shorts 播放圖示 - 19.26.42 - 還原舊版導覽圖示 - - 18.33.40 - 在 Shorts 無痕模式中還原 RYD - 18.20.39 - 還原寬影片速度與畫質選單 - 18.09.39 - 還原媒體庫分頁 - 17.33.42 - 還原舊版播放清單櫃 + 19.01.34 - 還原舊版導覽圖示 設定起始頁面 @@ -1128,10 +1140,11 @@ Second \"item\" text" 迷你播放器 + 變更應用程式內最小化播放器的樣式 迷你播放器類型 停用 預設 - 精簡 + 極簡 平板電腦 現代 1 現代 2 @@ -1275,6 +1288,8 @@ Second \"item\" text" 在瀏覽器中開啟連結 + 在外部瀏覽器中開啟連結 + 在應用程式內瀏覽器中開啟連結 移除追蹤查詢參數 @@ -1297,13 +1312,19 @@ Second \"item\" text" 自動 記住影片畫質 - 畫質變更會套用至所有影片 - 畫質變更僅套用至目前影片 + 畫質變更適用於所有影片 + 畫質變更僅適用於目前的影片 使用 Wi-Fi 時的預設影片畫質 使用行動數據時的預設影片畫質 + 記住 Shorts 的畫質變更 + 畫質變更適用於所有 Shorts + 畫質變更僅適用於目前的 Shorts + Wi-Fi 網路下的預設 Shorts 畫質 + 行動網路下的預設 Shorts 畫質 行動數據 Wi-Fi 已將預設 %1$s 畫質變更為:%2$s + 已將 Shorts %1$s 畫質變更為:%2$s 顯示速度對話方塊按鈕 @@ -1324,8 +1345,8 @@ Second \"item\" text" 記住播放速度 - 播放速度變更會套用至所有影片 - 播放速度變更僅套用至目前影片 + 播放速度變更適用於所有影片 + 播放速度變更僅適用於目前的影片 預設播放速度 已將預設速度變更為:%s @@ -1335,6 +1356,9 @@ Second \"item\" text" 已啟用 HDR 影片 + 顯示進階影片畫質選單 + 已顯示進階影片畫質選單 + 不顯示進階影片畫質選單 啟用滑動預覽 diff --git a/patches/src/main/resources/addresources/values-zu-rZA/strings.xml b/patches/src/main/resources/addresources/values-zu-rZA/strings.xml index ca8788fa6..faeeb800b 100644 --- a/patches/src/main/resources/addresources/values-zu-rZA/strings.xml +++ b/patches/src/main/resources/addresources/values-zu-rZA/strings.xml @@ -156,6 +156,7 @@ Second \"item\" text" + @@ -163,7 +164,6 @@ Second \"item\" text" - diff --git a/patches/src/main/resources/addresources/values/arrays.xml b/patches/src/main/resources/addresources/values/arrays.xml index a62906a68..c333f3659 100644 --- a/patches/src/main/resources/addresources/values/arrays.xml +++ b/patches/src/main/resources/addresources/values/arrays.xml @@ -143,23 +143,14 @@ @string/revanced_spoof_app_version_target_entry_2 - 19.35.36 - 19.26.42 + 19.01.34 - @string/revanced_spoof_app_version_target_legacy_entry_1 - @string/revanced_spoof_app_version_target_legacy_entry_2 - @string/revanced_spoof_app_version_target_legacy_entry_3 - @string/revanced_spoof_app_version_target_legacy_entry_4 + 19.01.34 - 18.33.40 - 18.20.39 - 18.09.39 - 17.33.42 + 19.01.34 diff --git a/patches/src/main/resources/addresources/values/strings.xml b/patches/src/main/resources/addresources/values/strings.xml index 7e015ef08..eb31b8abc 100644 --- a/patches/src/main/resources/addresources/values/strings.xml +++ b/patches/src/main/resources/addresources/values/strings.xml @@ -868,7 +868,6 @@ Settings → Playback → Autoplay next video" Dislikes are shown Dislikes are not shown Show dislikes on Shorts - Dislikes on Shorts are shown "Dislikes on Shorts are shown Limitation: Dislikes may not appear in incognito mode" @@ -1068,6 +1067,8 @@ Already exists" Downvote Change category There are no segments to vote for + + %1$s to %2$s Choose the segment category Category is disabled in settings. Enable category to submit. New SponsorBlock segment @@ -1115,6 +1116,7 @@ Ready to submit?" %1$s hours %2$s minutes %1$s minutes %2$s seconds %s seconds + Opacity: Color: Color changed Color reset @@ -1153,12 +1155,7 @@ If later turned off, it is recommended to clear the app data to prevent UI bugs. 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 --> Spoof app version target 19.35.36 - Restore old Shorts player icons - 19.26.42 - Restore old navigation icons - - 18.33.40 - Restore RYD on Shorts incognito mode - 18.20.39 - Restore wide video speed & quality menu - 18.09.39 - Restore library tab - 17.33.42 - Restore old playlist shelf + 19.01.34 - Restore old navigation icons Set start page