Compare commits

...
47 Commits
Author SHA1 Message Date
Dan 05b7faff70 Merge pull request #22 from arichorn/patch-1
Fix `Remove Dark Background in Overlay`
2023-07-26 02:37:49 +03:00
Dan 6876c2e572 Fix Remove Dark Background in Overlay #22 2023-07-26 02:37:17 +03:00
arichorn 08784c4819 Update YTLite.x 2023-07-25 18:35:01 -05:00
arichorn afd9e6054b Update YTLite.x 2023-07-25 18:18:55 -05:00
Dan bcd9e54137 Merge pull request #21 from SKEIDs/Add-Japanese-localization
Add Japanese localization
2023-07-21 19:49:11 +03:00
SKEIDs b3f4e9216a Update Japanese localization 2023-07-20 22:02:03 +09:00
SKEIDs 392330189e Add Japanese localization 2023-07-20 02:33:44 +09:00
Dan e8c23c0e8f Merge pull request #19 from mumuisdog/main
Update zh-Hant Localizable for 2.3
2023-07-16 15:13:28 +03:00
Dan d454fe1642 Merge pull request #18 from xiangfeidexiaohuo/main
Update Simplified Chinese of v2.3
2023-07-16 15:13:11 +03:00
mumuisdog 0206d55fef Update Localizable.strings 2023-07-16 20:10:15 +08:00
xiangfeidexiaohuo 8c44277e7c Update Simplified Chinese of v2.3
Signed-off-by: xiangfeidexiaohuo <jsjson@163.com>
2023-07-16 17:53:51 +08:00
Dan 753e1b480d Merge pull request #17 from Deci8BelioS/main
Update Localizable.strings Spanish
2023-07-15 22:46:07 +03:00
DeciBelioS b6b441103d Update Localizable.strings Spanish 2023-07-15 21:28:47 +02:00
dayanch96 d52e3b79c8 Merge branch 'main' of https://github.com/dayanch96/YTLite 2023-07-15 20:11:05 +03:00
dayanch96 5862a73ac9 more options and improvements 2023-07-15 20:11:03 +03:00
Dan 1bdc0e0e62 Merge pull request #15 from xiangfeidexiaohuo/main
Update Simplified Chinese
2023-07-13 14:01:38 +03:00
xiangfeidexiaohuo 0755b5abbd Update Simplified Chinese
Signed-off-by: xiangfeidexiaohuo <jsjson@163.com>
2023-07-12 16:06:08 +08:00
Dan 887ba2fdbe Merge pull request #13 from Balackburn/main
updated fr.lproj
2023-07-11 16:16:10 +03:00
Balackburn 2083ab7fbf translated lines 50, 51 2023-07-11 15:13:15 +02:00
Balackburn 83c53f9ede Merge branch 'dayanch96:main' into main 2023-07-11 15:12:12 +02:00
Dan 9bc4036a73 Merge pull request #14 from mumuisdog/main
Update zh-Hant Localizable
2023-07-11 15:19:39 +03:00
mumuisdog a16d978e7d Update Localizable.strings 2023-07-11 18:21:58 +08:00
Balackburn f269dd4022 updated fr.lproj 2023-07-11 03:41:30 +02:00
dayanch96 49b17ce2b0 Update Spanish translate @Deci8BelioS 2023-07-11 01:04:37 +03:00
dayanch96 06ed61a83a portrait fullscreen mode 2023-07-11 00:24:08 +03:00
dayanch96 95fe3a9fb5 reminder, shorts promo cards, small improvements 2023-07-10 22:51:37 +03:00
Dan 25dc28edc0 Merge pull request #10 from mumuisdog/main
zh-Hant
2023-07-09 03:29:24 +03:00
Dan 3100277916 Merge pull request #11 from Deci8BelioS/main
Added Spanish language
2023-07-09 03:13:53 +03:00
DeciBelioS f771693a0b Added Spanish language 2023-07-08 20:43:01 +02:00
DeciBelioS ed468a8450 Delete es.lproj directory 2023-07-08 20:42:49 +02:00
DeciBelioS 1c4e15167e Added Spanish language 2023-07-08 20:42:38 +02:00
mumuisdog ff28f0bf74 Update Localizable.strings 2023-07-09 01:06:59 +08:00
mumuisdog f1e699a5a1 Create Localizable.strings 2023-07-09 00:38:44 +08:00
Dan f042d94791 Merge pull request #9 from Balackburn/main
Synthax error fix
2023-07-08 02:52:58 +03:00
Balackburn 766cbb2c66 synthax (again) 2023-07-08 00:35:28 +02:00
Balackburn aed0ae5307 Synthax error fix 2023-07-08 00:15:09 +02:00
Dan 0794199217 Merge pull request #7 from Balackburn/main
added fr localization
2023-07-07 20:57:20 +03:00
Dan 38e522d6f9 Merge pull request #6 from xiangfeidexiaohuo/main
update Simplified Chinese for v2.2
2023-07-07 20:57:06 +03:00
Balackburn b913835551 added fr localization 2023-07-07 15:04:40 +02:00
xiangfeidexiaohuo a3e1fc3e91 update Simplified Chinese for v2.2
Signed-off-by: xiangfeidexiaohuo <jsjson@163.com>
2023-07-07 19:04:32 +08:00
dayanch96 092dd5ef9e small fixes, extra speed options, auto fullscreen 2023-07-06 23:28:36 +03:00
dayanch96 69b6f81d34 Merge branch 'main' of https://github.com/dayanch96/YTLite 2023-06-30 15:29:44 +03:00
dayanch96 886c40b15d Fix 'Disable double tap to seek' option 2023-06-30 15:29:42 +03:00
Dan b28fc7958f Merge pull request #4 from xiangfeidexiaohuo/main
Corrected Chinese translation
2023-06-30 13:07:33 +03:00
xiangfeidexiaohuo eb08caf6ea Corrected Chinese translation
Signed-off-by: xiangfeidexiaohuo <jsjson@163.com>
2023-06-30 14:46:37 +08:00
Dan f17eeb54b5 Merge pull request #3 from xiangfeidexiaohuo/main
update Simplified Chinese for v2.1
2023-06-27 22:01:58 +03:00
xiangfeidexiaohuo 0019a2e690 update Simplified Chinese for v2.1
Signed-off-by: xiangfeidexiaohuo <jsjson@163.com>
2023-06-27 19:44:13 +08:00
17 changed files with 1052 additions and 40 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ endif
DEBUG=0
FINALPACKAGE=1
ARCHS = arm64
PACKAGE_VERSION = 2.1
PACKAGE_VERSION = 2.3
TARGET := iphone:clang:latest:11.0
include $(THEOS)/makefiles/common.mk
+63 -8
View File
@@ -8,14 +8,17 @@ static const NSInteger YTLiteSection = 789;
static void resetYTLiteSettings() {
NSString *prefsPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:@"YTLite.plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager removeItemAtPath:prefsPath error:nil];
[[NSFileManager defaultManager] removeItemAtPath:prefsPath error:nil];
[[UIApplication sharedApplication] performSelector:@selector(suspend)];
[NSThread sleepForTimeInterval:1.0];
exit(0);
}
NSBundle *YTLiteBundle() {
static NSBundle *bundle = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
dispatch_once(&onceToken, ^{
NSString *tweakBundlePath = [[NSBundle mainBundle] pathForResource:@"YTLite" ofType:@"bundle"];
if (tweakBundlePath)
bundle = [NSBundle bundleWithPath:tweakBundlePath];
@@ -175,13 +178,16 @@ static YTSettingsSectionItem *createSwitchItem(NSString *title, NSString *titleD
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
createSwitchItem(LOC(@"Miniplayer"), LOC(@"MiniplayerDesc"), @"miniplayer", &kMiniplayer, selfObject),
createSwitchItem(LOC(@"PortraitFullscreen"), LOC(@"PortraitFullscreenDesc"), @"portraitFullscreen", &kPortraitFullscreen, selfObject),
createSwitchItem(LOC(@"DisableAutoplay"), LOC(@"DisableAutoplayDesc"), @"disableAutoplay", &kDisableAutoplay, selfObject),
createSwitchItem(LOC(@"NoContentWarning"), LOC(@"NoContentWarningDesc"), @"noContentWarning", &kNoContentWarning, selfObject),
createSwitchItem(LOC(@"ClassicQuality"), LOC(@"ClassicQualityDesc"), @"classicQuality", &kClassicQuality, selfObject),
createSwitchItem(LOC(@"ExtraSpeedOptions"), LOC(@"ExtraSpeedOptionsDesc"), @"extraSpeedOptions", &kExtraSpeedOptions, selfObject),
createSwitchItem(LOC(@"DontSnap2Chapter"), LOC(@"DontSnap2ChapterDesc"), @"dontSnapToChapter", &kDontSnapToChapter, selfObject),
createSwitchItem(LOC(@"RedProgressBar"), LOC(@"RedProgressBarDesc"), @"redProgressBar", &kRedProgressBar, selfObject),
createSwitchItem(LOC(@"NoHints"), LOC(@"NoHintsDesc"), @"noHints", &kNoHints, selfObject),
createSwitchItem(LOC(@"NoFreeZoom"), LOC(@"NoFreeZoomDesc"), @"noFreeZoom", &kNoFreeZoom, selfObject),
createSwitchItem(LOC(@"AutoFullscreen"), LOC(@"AutoFullscreenDesc"), @"autoFullscreen", &kAutoFullscreen, selfObject),
createSwitchItem(LOC(@"ExitFullscreen"), LOC(@"ExitFullscreenDesc"), @"exitFullscreen", &kExitFullscreen, selfObject),
createSwitchItem(LOC(@"NoDoubleTap2Seek"), LOC(@"NoDoubleTap2SeekDesc"), @"noDoubleTapToSeek", &kNoDoubleTapToSeek, selfObject)
];
@@ -216,7 +222,8 @@ static YTSettingsSectionItem *createSwitchItem(NSString *title, NSString *titleD
createSwitchItem(LOC(@"HideShortsThanks"), LOC(@"HideShortsThanksDesc"), @"hideShortsThanks", &kHideShortsThanks, selfObject),
createSwitchItem(LOC(@"HideShortsChannelName"), LOC(@"HideShortsChannelNameDesc"), @"hideShortsChannelName", &kHideShortsChannelName, selfObject),
createSwitchItem(LOC(@"HideShortsDescription"), LOC(@"HideShortsDescriptionDesc"), @"hideShortsDescription", &kHideShortsDescription, selfObject),
createSwitchItem(LOC(@"HideShortsAudioTrack"), LOC(@"HideShortsAudioTrackDesc"), @"hideShortsAudioTrack", &kHideShortsAudioTrack, selfObject)
createSwitchItem(LOC(@"HideShortsAudioTrack"), LOC(@"HideShortsAudioTrackDesc"), @"hideShortsAudioTrack", &kHideShortsAudioTrack, selfObject),
createSwitchItem(LOC(@"NoPromotionCards"), LOC(@"NoPromotionCardsDesc"), @"hideShortsPromoCards", &kHideShortsPromoCards, selfObject)
];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"Shorts") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
@@ -255,7 +262,13 @@ static YTSettingsSectionItem *createSwitchItem(NSString *title, NSString *titleD
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
createSwitchItem(LOC(@"RemovePlayNext"), LOC(@"RemovePlayNextDesc"), @"removePlayNext", &kRemovePlayNext, selfObject),
createSwitchItem(LOC(@"NoContinueWatching"), LOC(@"NoContinueWatchingDesc"), @"noContinueWatching", &kNoContinueWatching, selfObject)
createSwitchItem(LOC(@"NoContinueWatching"), LOC(@"NoContinueWatchingDesc"), @"noContinueWatching", &kNoContinueWatching, selfObject),
createSwitchItem(LOC(@"NoSearchHistory"), LOC(@"NoSearchHistoryDesc"), @"noSearchHistory", &kNoSearchHistory, selfObject),
createSwitchItem(LOC(@"NoRelatedWatchNexts"), LOC(@"NoRelatedWatchNextsDesc"), @"noRelatedWatchNexts", &kNoRelatedWatchNexts, selfObject),
createSwitchItem(LOC(@"StickSortComments"), LOC(@"StickSortCommentsDesc"), @"stickSortComments", &kStickSortComments, selfObject),
createSwitchItem(LOC(@"HideSortComments"), LOC(@"HideSortCommentsDesc"), @"hideSortComments", &kHideSortComments, selfObject),
createSwitchItem(LOC(@"PlaylistOldMinibar"), LOC(@"PlaylistOldMinibarDesc"), @"playlistOldMinibar", &kPlaylistOldMinibar, selfObject),
createSwitchItem(LOC(@"DisableRTL"), LOC(@"DisableRTLDesc"), @"disableRTL", &kDisableRTL, selfObject)
];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"Other") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
@@ -341,7 +354,7 @@ static YTSettingsSectionItem *createSwitchItem(NSString *title, NSString *titleD
[sectionItems addObject:space];
YTSettingsSectionItem *ps = [%c(YTSettingsSectionItem) itemWithTitle:@"PoomSmart" titleDescription:@"YouTube-X, YTNoPremium, YTClassicVideoQuality, YTShortsProgress, YTReExplore, SkipContentWarning, YouTubeHeaders" accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
YTSettingsSectionItem *ps = [%c(YTSettingsSectionItem) itemWithTitle:@"PoomSmart" titleDescription:@"YouTube-X, YTNoPremium, YTClassicVideoQuality, YTShortsProgress, YTReExplore, SkipContentWarning, YTAutoFullscreen, YouTubeHeaders" accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
return [%c(YTUIUtils) openURL:[NSURL URLWithString:@"https://github.com/PoomSmart/"]];
}];
@@ -349,6 +362,26 @@ static YTSettingsSectionItem *createSwitchItem(NSString *title, NSString *titleD
return [%c(YTUIUtils) openURL:[NSURL URLWithString:@"https://github.com/MiRO92/"]];
}];
YTSettingsSectionItem *lillie = [%c(YTSettingsSectionItem) itemWithTitle:@"Lillie" titleDescription:@"ExtraSpeedOptions" accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
return [%c(YTUIUtils) openURL:[NSURL URLWithString:@"https://github.com/LillieH1000"]];
}];
YTSettingsSectionItem *stalker = [%c(YTSettingsSectionItem) itemWithTitle:@"Stalker" titleDescription:LOC(@"ChineseSimplified") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
return [%c(YTUIUtils) openURL:[NSURL URLWithString:@"https://github.com/xiangfeidexiaohuo"]];
}];
YTSettingsSectionItem *clement = [%c(YTSettingsSectionItem) itemWithTitle:@"Clement" titleDescription:LOC(@"ChineseTraditional") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
return [%c(YTUIUtils) openURL:[NSURL URLWithString:@"https://twitter.com/a100900900"]];
}];
YTSettingsSectionItem *balackburn = [%c(YTSettingsSectionItem) itemWithTitle:@"Balackburn" titleDescription:LOC(@"French") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
return [%c(YTUIUtils) openURL:[NSURL URLWithString:@"https://github.com/Balackburn"]];
}];
YTSettingsSectionItem *decibelios = [%c(YTSettingsSectionItem) itemWithTitle:@"DeciBelioS" titleDescription:LOC(@"Spanish") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
return [%c(YTUIUtils) openURL:[NSURL URLWithString:@"https://github.com/Deci8BelioS"]];
}];
YTSettingsSectionItem *dayanch96 = [%c(YTSettingsSectionItem) itemWithTitle:@"Dayanch96" titleDescription:LOC(@"Developer") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
return [%c(YTUIUtils) openURL:[NSURL URLWithString:@"https://github.com/Dayanch96/"]];
}];
@@ -356,7 +389,6 @@ static YTSettingsSectionItem *createSwitchItem(NSString *title, NSString *titleD
YTSettingsSectionItem *reset = [%c(YTSettingsSectionItem) itemWithTitle:LOC(@"ResetSettings") titleDescription:nil accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
YTAlertView *alertView = [%c(YTAlertView) confirmationDialogWithAction:^{
resetYTLiteSettings();
exit(0);
}
actionTitle:LOC(@"Yes")
cancelTitle:LOC(@"No")];
@@ -372,7 +404,7 @@ static YTSettingsSectionItem *createSwitchItem(NSString *title, NSString *titleD
return @(OS_STRINGIFY(TWEAK_VERSION));
}
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[ps, miro, dayanch96, space, createSwitchItem(LOC(@"Advanced"), nil, @"advancedMode", &kAdvancedMode, selfObject), reset];
NSArray <YTSettingsSectionItem *> *rows = @[ps, miro, lillie, dayanch96, stalker, clement, balackburn, decibelios, space, createSwitchItem(LOC(@"Advanced"), nil, @"advancedMode", &kAdvancedMode, selfObject), reset];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"About") pickerSectionTitle:LOC(@"Credits") rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
@@ -390,3 +422,26 @@ static YTSettingsSectionItem *createSwitchItem(NSString *title, NSString *titleD
} %orig;
}
%end
%ctor {
if (!kAdvancedModeReminder && !kAdvancedMode) {
NSString *prefsPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:@"YTLite.plist"];
NSMutableDictionary *prefs = [NSMutableDictionary dictionaryWithContentsOfFile:prefsPath];
[prefs setObject:@(YES) forKey:@"advancedModeReminder"];
[prefs writeToFile:prefsPath atomically:NO];
CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), CFSTR("com.dvntm.ytlite.prefschanged"), NULL, NULL, YES);
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
YTAlertView *alertView = [%c(YTAlertView) confirmationDialogWithAction:^{
[prefs setObject:@(YES) forKey:@"advancedMode"];
[prefs writeToFile:prefsPath atomically:NO];
CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), CFSTR("com.dvntm.ytlite.prefschanged"), NULL, NULL, YES);
}
actionTitle:LOC(@"Yes")
cancelTitle:LOC(@"No")];
alertView.title = @"YTLite";
alertView.subtitle = [NSString stringWithFormat:LOC(@"AdvancedModeReminder"), @"YTLite", LOC(@"Version"), LOC(@"Advanced")];
[alertView show];
});
}
}
+42
View File
@@ -10,6 +10,7 @@
#import "../YouTubeHeader/YTQTMButton.h"
#import "../YouTubeHeader/YTVideoQualitySwitchOriginalController.h"
#import "../YouTubeHeader/YTPlayerViewController.h"
#import "../YouTubeHeader/YTWatchController.h"
#import "../YouTubeHeader/YTPlayerOverlay.h"
#import "../YouTubeHeader/YTPlayerOverlayProvider.h"
#import "../YouTubeHeader/YTSettingsViewController.h"
@@ -47,13 +48,16 @@ BOOL kNoRelatedVids;
BOOL kNoPromotionCards;
BOOL kNoWatermarks;
BOOL kMiniplayer;
BOOL kPortraitFullscreen;
BOOL kDisableAutoplay;
BOOL kNoContentWarning;
BOOL kClassicQuality;
BOOL kExtraSpeedOptions;
BOOL kDontSnapToChapter;
BOOL kRedProgressBar;
BOOL kNoHints;
BOOL kNoFreeZoom;
BOOL kAutoFullscreen;
BOOL kExitFullscreen;
BOOL kNoDoubleTapToSeek;
BOOL kHideShorts;
@@ -74,6 +78,7 @@ BOOL kHideShortsThanks;
BOOL kHideShortsChannelName;
BOOL kHideShortsDescription;
BOOL kHideShortsAudioTrack;
BOOL kHideShortsPromoCards;
BOOL kRemoveLabels;
BOOL kReExplore;
BOOL kRemoveShorts;
@@ -82,7 +87,14 @@ BOOL kRemoveUploads;
BOOL kRemoveLibrary;
BOOL kRemovePlayNext;
BOOL kNoContinueWatching;
BOOL kNoSearchHistory;
BOOL kNoRelatedWatchNexts;
BOOL kStickSortComments;
BOOL kHideSortComments;
BOOL kPlaylistOldMinibar;
BOOL kDisableRTL;
BOOL kAdvancedMode;
BOOL kAdvancedModeReminder;
int kPivotIndex;
@interface YTSettingsSectionItemManager (Custom)
@@ -107,12 +119,22 @@ int kPivotIndex;
@property (nonatomic, strong) YTQTMButton *searchButton;
@end
@interface YTSearchView : UIView
@end
@interface YTSearchBarView : UIView
@end
@interface YTNavigationBarTitleView : UIView
@end
@interface YTChipCloudCell : UICollectionViewCell
@end
@interface YTPlayerViewController (YTAFS)
- (void)autoFullscreen;
@end
@interface YTSegmentableInlinePlayerBarView
@property (nonatomic, assign, readwrite) BOOL enableSnapToChapter;
@end
@@ -144,6 +166,26 @@ int kPivotIndex;
@interface YTReelWatchHeaderView : UIView
@end
@interface YTELMView : UIView
@end
@interface MLHAMQueuePlayer : NSObject
@property id playerEventCenter;
-(void)setRate:(float)rate;
@end
@interface YTVarispeedSwitchControllerOption : NSObject
- (id)initWithTitle:(id)title rate:(float)rate;
@end
@interface HAMPlayerInternal : NSObject
- (void)setRate:(float)rate;
@end
@interface MLPlayerEventCenter : NSObject
- (void)broadcastRateChange:(float)rate;
@end
@interface YTAlertView : UIView
@property (nonatomic, copy, readwrite) NSString *title;
@property (nonatomic, copy, readwrite) NSString *subtitle;
+191 -24
View File
@@ -30,15 +30,13 @@
%hook YTIElementRenderer
- (NSData *)elementData {
if (self.hasCompatibilityOptions && self.compatibilityOptions.hasAdLoggingData)
return nil;
if (self.hasCompatibilityOptions && self.compatibilityOptions.hasAdLoggingData && kNoAds) return nil;
NSArray *adDescriptions = @[@"brand_promo", @"product_carousel", @"product_engagement_panel", @"product_item", @"text_search_ad", @"text_image_button_layout", @"carousel_headered_layout", @"square_image_layout", @"feed_ad_metadata"];
NSString *description = [self description];
if (([description containsString:@"brand_promo"]
|| [description containsString:@"product_carousel"]
|| [description containsString:@"product_engagement_panel"]
|| [description containsString:@"product_item"]) && kNoAds)
if (([adDescriptions containsObject:description] && kNoAds) || ([description containsString:@"inline_shorts"] && kHideShorts)) {
return [NSData data];
return %orig;
} return %orig;
}
%end
@@ -103,14 +101,53 @@
- (void)setDisableMDXDeviceDiscovery:(BOOL)arg1 { %orig(kNoCast); }
%end
// Hide Cast, Notifications and Search Buttons
// Hide Navigation Bar Buttons
%hook YTRightNavigationButtons
- (void)layoutSubviews {
%orig;
if (kNoCast && self.subviews.count > 1 && [self.subviews[1].accessibilityIdentifier isEqualToString:@"id.mdx.playbackroute.button"]) self.subviews[1].hidden = YES; // Hide icon immediately
if (kNoNotifsButton) self.notificationButton.hidden = YES;
if (kNoSearchButton) self.searchButton.hidden = YES;
if (kNoVoiceSearchButton && self.subviews.count >= 4 && [self.subviews[2].accessibilityIdentifier isEqualToString:@"id.settings.overflow.button"]) self.subviews[3].hidden = YES;
NSInteger moreButtonIndex = -1;
for (NSInteger i = 0; i < self.subviews.count; i++) {
UIView *subview = self.subviews[i];
if ([subview.accessibilityIdentifier isEqualToString:@"id.settings.overflow.button"]) {
moreButtonIndex = i;
break;
}
}
if (moreButtonIndex != -1 && moreButtonIndex < self.subviews.count - 1 && kNoVoiceSearchButton) {
UIView *voiceButton = self.subviews[moreButtonIndex + 1];
voiceButton.hidden = YES;
}
}
%end
%hook YTSearchView
- (void)layoutSubviews {
%orig;
// Hide Search History
if (kNoSearchHistory && self.subviews.count > 1) self.subviews[1].hidden = YES;
// Hide Voice Search Button
if (kNoVoiceSearchButton && self.subviews.count > 0) {
UIView *firstSubview = self.subviews.firstObject;
for (UIView *subview in firstSubview.subviews) {
if ([NSStringFromClass([subview class]) isEqualToString:@"UIView"]) {
[subview setValue:@(1) forKey:@"hidden"];
break;
}
}
}
}
%end
// Remove Videos Section Under Player
%hook YTWatchNextResultsViewController
- (void)setVisibleSections:(NSInteger)arg1 {
arg1 = (kNoRelatedWatchNexts) ? 1 : arg1;
%orig(arg1);
}
%end
@@ -156,24 +193,30 @@
%hook YTColdConfig
// Hide Next & Previous buttons
- (BOOL)removeNextPaddleForSingletonVideos { return kHidePrevNext ? YES : NO; }
- (BOOL)removePreviousPaddleForSingletonVideos { return kHidePrevNext ? YES : NO; }
- (BOOL)removeNextPaddleForSingletonVideos { return kHidePrevNext ? YES : %orig; }
- (BOOL)removePreviousPaddleForSingletonVideos { return kHidePrevNext ? YES : %orig; }
// Replace Next & Previous with Fast Forward & Rewind buttons
- (BOOL)replaceNextPaddleWithFastForwardButtonForSingletonVods { return kReplacePrevNext ? YES : NO; }
- (BOOL)replacePreviousPaddleWithRewindButtonForSingletonVods { return kReplacePrevNext ? YES : NO; }
- (BOOL)replaceNextPaddleWithFastForwardButtonForSingletonVods { return kReplacePrevNext ? YES : %orig; }
- (BOOL)replacePreviousPaddleWithRewindButtonForSingletonVods { return kReplacePrevNext ? YES : %orig; }
// Disable Free Zoom
- (BOOL)videoZoomFreeZoomEnabledGlobalConfig { return kNoFreeZoom ? NO : YES; }
- (BOOL)videoZoomFreeZoomEnabledGlobalConfig { return kNoFreeZoom ? NO : %orig; }
// Stick Sort Buttons in Comments Section
- (BOOL)enableHideChipsInTheCommentsHeaderOnScrollIos { return kStickSortComments ? NO : %orig; }
// Hide Sort Buttons in Comments Section
- (BOOL)enableChipsInTheCommentsHeaderIos { return kHideSortComments ? NO : %orig; }
// Use System Theme
- (BOOL)shouldUseAppThemeSetting { return YES; }
// Dismiss Panel By Swiping in Fullscreen Mode
- (BOOL)isLandscapeEngagementPanelSwipeRightToDismissEnabled { return YES; }
// Remove Video in Playlist By Swiping To The Right
- (BOOL)enableSwipeToRemoveInPlaylistWatchEp { return YES; }
// Enable Old-style Minibar For Playlist Panel
- (BOOL)queueClientGlobalConfigEnableFloatingPlaylistMinibar { return kPlaylistOldMinibar ? NO : %orig; }
%end
// Remove Dark Background in Overlay
%hook YTMainAppVideoPlayerOverlayView
- (void)setBackgroundVisible:(BOOL)arg1 { kNoDarkBg ? %orig(NO) : %orig; }
- (void)setBackgroundVisible:(BOOL)arg1 isGradientBackground:(BOOL)arg2 { kNoDarkBg ? %orig(NO, arg2) : %orig; }
%end
// No Endscreen Cards
@@ -215,6 +258,11 @@
- (void)updateMiniBarPlayerStateFromRenderer { if (!kMiniplayer) %orig; }
%end
// Portrait Fullscreen
%hook YTWatchViewController
- (unsigned long long)allowedFullScreenOrientations { return kPortraitFullscreen ? UIInterfaceOrientationMaskAllButUpsideDown : %orig; }
%end
// Disable Autoplay
%hook YTPlaybackConfig
- (void)setStartPlayback:(BOOL)arg1 { kDisableAutoplay ? %orig(NO) : %orig; }
@@ -229,9 +277,59 @@
%hook YTVideoQualitySwitchControllerFactory
- (id)videoQualitySwitchControllerWithParentResponder:(id)responder {
Class originalClass = %c(YTVideoQualitySwitchOriginalController);
if (kClassicQuality) {
return originalClass ? [[originalClass alloc] initWithParentResponder:responder] : %orig;
} return %orig;
if (kClassicQuality) return originalClass ? [[originalClass alloc] initWithParentResponder:responder] : %orig;
return %orig;
}
%end
// Extra Speed Options (https://github.com/LillieH1000/YouTube-Reborn/blob/v4/Tweak.xm#L853) - Same code but for .x
%hook YTVarispeedSwitchController
- (void *)init {
void *ret = (void *)%orig;
if (kExtraSpeedOptions) {
NSArray *speedOptions = @[@"0.1x", @"0.25x", @"0.5x", @"0.75x", @"1x", @"1.25x", @"1.5x", @"1.75x", @"2x", @"2.5x", @"3x", @"3.5x", @"4x", @"5x"];
NSMutableArray *speedOptionsCopy = [NSMutableArray new];
for (NSString *title in speedOptions) {
float rate = [title floatValue];
[speedOptionsCopy addObject:[[objc_lookUpClass("YTVarispeedSwitchControllerOption") alloc] initWithTitle:title rate:rate]];
}
Ivar optionsIvar = class_getInstanceVariable(object_getClass(self), "_options");
object_setIvar(self, optionsIvar, [speedOptionsCopy copy]);
} return ret;
}
%end
%hook MLHAMQueuePlayer
- (void)setRate:(float)rate {
if (kExtraSpeedOptions) {
Ivar rateIvar = class_getInstanceVariable([self class], "_rate");
if (rateIvar) {
float* ratePtr = (float *)((__bridge void *)self + ivar_getOffset(rateIvar));
*ratePtr = rate;
}
id ytPlayer = object_getIvar(self, class_getInstanceVariable([self class], "_player"));
if ([ytPlayer respondsToSelector:@selector(setRate:)]) {
[ytPlayer setRate:rate];
}
[self.playerEventCenter broadcastRateChange:rate];
} else {
%orig(rate);
}
}
%end
// Temprorary Fix For 'Classic Video Quality' and 'Extra Speed Options'
%hook YTVersionUtils
+ (NSString *)appVersion {
NSString *originalVersion = %orig;
NSString *fakeVersion = @"18.18.2";
return (!kClassicQuality && !kExtraSpeedOptions && [originalVersion compare:fakeVersion options:NSNumericSearch] == NSOrderedDescending) ? originalVersion : fakeVersion;
}
%end
@@ -246,7 +344,7 @@
%end
%hook YTSegmentableInlinePlayerBarView
- (void)setBufferedProgressBarColor:(id)arg1 { if (kNoRelatedVids) %orig([UIColor colorWithRed:0.65 green:0.65 blue:0.65 alpha:0.60]); }
- (void)setBufferedProgressBarColor:(id)arg1 { if (kRedProgressBar) %orig([UIColor colorWithRed:0.65 green:0.65 blue:0.65 alpha:0.60]); }
%end
// Disable Hints
@@ -260,14 +358,28 @@
- (void)setHintsDisabled:(BOOL)arg1 { kNoHints ? %orig(YES) : %orig; }
%end
// Enter Fullscreen on Start (https://github.com/PoomSmart/YTAutoFullScreen)
%hook YTPlayerViewController
- (void)loadWithPlayerTransition:(id)arg1 playbackConfig:(id)arg2 {
%orig;
if (kAutoFullscreen) [NSTimer scheduledTimerWithTimeInterval:0.75 target:self selector:@selector(autoFullscreen) userInfo:nil repeats:NO];
}
%new
- (void)autoFullscreen {
YTWatchController *watchController = [self valueForKey:@"_UIDelegate"];
[watchController showFullScreen];
}
%end
// Exit Fullscreen on Finish
%hook YTWatchFlowController
- (BOOL)shouldExitFullScreenOnFinish { return kExitFullscreen ? YES : NO; }
%end
// Disable Double Tap To Seek
%hook YTDoubleTapToSeekController
- (void)enableDoubleTapToSeek:(BOOL)arg1 { kNoDoubleTapToSeek ? %orig(NO) : %orig; }
%hook YTMainAppVideoPlayerOverlayViewController
- (BOOL)allowDoubleTapToSeekGestureRecognizer { return kNoDoubleTapToSeek ? NO : %orig; }
%end
// Fit 'Play All' Buttons Text For Localizations
@@ -279,6 +391,21 @@
}
%end
// Fit Shorts Button Labels For Localizations
%hook YTReelPlayerButton
- (void)layoutSubviews {
%orig;
for (UIView *subview in self.subviews) {
if ([subview isKindOfClass:[UILabel class]]) {
UILabel *label = (UILabel *)subview;
label.adjustsFontSizeToFitWidth = YES;
break;
}
}
}
%end
// Fix Playlist Mini-bar Height For Small Screens
%hook YTPlaylistMiniBarView
- (void)setFrame:(CGRect)frame {
@@ -306,7 +433,7 @@
if ([cell respondsToSelector:@selector(node)]) {
NSString *idToRemove = [[cell node] accessibilityIdentifier];
if ([idToRemove isEqualToString:@"statement_banner.view"] ||
(([idToRemove isEqualToString:@"eml.shorts-grid"] || [idToRemove isEqualToString:@"eml.shorts-shelf"]) && kHideShorts)) {
(([idToRemove isEqualToString:@"eml.shorts-grid"] || [idToRemove isEqualToString:@"eml.shorts-shelf"] || [idToRemove isEqualToString:@"eml.inline_shorts"]) && kHideShorts)) {
[self removeCellsAtIndexPath:indexPath];
}
}
@@ -389,9 +516,21 @@
- (void)layoutSubviews {
%orig;
if (kHideShortsDescription && [self.subviews[2].accessibilityIdentifier isEqualToString:@"id.reels_smv_player_title_label"]) self.subviews[2].hidden = YES;
if (kHideShortsThanks && [self.subviews[self.subviews.count - 3].accessibilityIdentifier isEqualToString:@"id.elements.components.suggested_action"]) self.subviews[self.subviews.count - 3].hidden = YES;
if (kHideShortsThanks && [self.subviews[self.subviews.count - 3].accessibilityIdentifier isEqualToString:@"id.elements.components.suggested_action"]) self.subviews[self.subviews.count - 3].hidden = YES; // Might be useful for older versions
if (kHideShortsChannelName) self.subviews[self.subviews.count - 2].hidden = YES;
if (kHideShortsAudioTrack) self.subviews.lastObject.hidden = YES;
for (UIView *subview in self.subviews) {
if (kHideShortsPromoCards && [NSStringFromClass([subview class]) isEqualToString:@"YTBadge"]) {
subview.hidden = YES;
}
}
}
%end
%hook YTELMView
- (void)layoutSubviews {
%orig;
if (kHideShortsThanks && [self.subviews.firstObject.accessibilityIdentifier isEqualToString:@"id.elements.components.suggested_action"]) self.subviews.firstObject.hidden = YES;
}
%end
@@ -562,6 +701,12 @@ BOOL isTabSelected = NO;
}
%end
// Disable Right-To-Left Formatting
%hook NSParagraphStyle
+ (NSWritingDirection)defaultWritingDirectionForLanguage:(id)lang { return kDisableRTL ? NSWritingDirectionLeftToRight : %orig; }
+ (NSWritingDirection)_defaultWritingDirection { return kDisableRTL ? NSWritingDirectionLeftToRight : %orig; }
%end
static void reloadPrefs() {
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:@"YTLite.plist"];
NSDictionary *prefs = [NSDictionary dictionaryWithContentsOfFile:path];
@@ -587,13 +732,16 @@ static void reloadPrefs() {
kNoPromotionCards = [prefs[@"noPromotionCards"] boolValue] ?: NO;
kNoWatermarks = [prefs[@"noWatermarks"] boolValue] ?: NO;
kMiniplayer = [prefs[@"miniplayer"] boolValue] ?: NO;
kPortraitFullscreen = [prefs[@"portraitFullscreen"] boolValue] ?: NO;
kDisableAutoplay = [prefs[@"disableAutoplay"] boolValue] ?: NO;
kNoContentWarning = [prefs[@"noContentWarning"] boolValue] ?: NO;
kClassicQuality = [prefs[@"classicQuality"] boolValue] ?: NO;
kExtraSpeedOptions = [prefs[@"extraSpeedOptions"] boolValue] ?: NO;
kDontSnapToChapter = [prefs[@"dontSnapToChapter"] boolValue] ?: NO;
kRedProgressBar = [prefs[@"redProgressBar"] boolValue] ?: NO;
kNoHints = [prefs[@"noHints"] boolValue] ?: NO;
kNoFreeZoom = [prefs[@"noFreeZoom"] boolValue] ?: NO;
kAutoFullscreen = [prefs[@"autoFullscreen"] boolValue] ?: NO;
kExitFullscreen = [prefs[@"exitFullscreen"] boolValue] ?: NO;
kNoDoubleTapToSeek = [prefs[@"noDoubleTapToSeek"] boolValue] ?: NO;
kHideShorts = [prefs[@"hideShorts"] boolValue] ?: NO;
@@ -614,6 +762,7 @@ static void reloadPrefs() {
kHideShortsChannelName = [prefs[@"hideShortsChannelName"] boolValue] ?: NO;
kHideShortsDescription = [prefs[@"hideShortsDescription"] boolValue] ?: NO;
kHideShortsAudioTrack = [prefs[@"hideShortsAudioTrack"] boolValue] ?: NO;
kHideShortsPromoCards = [prefs[@"hideShortsPromoCards"] boolValue] ?: NO;
kRemoveLabels = [prefs[@"removeLabels"] boolValue] ?: NO;
kReExplore = [prefs[@"reExplore"] boolValue] ?: NO;
kRemoveShorts = [prefs[@"removeShorts"] boolValue] ?: NO;
@@ -622,8 +771,15 @@ static void reloadPrefs() {
kRemoveLibrary = [prefs[@"removeLibrary"] boolValue] ?: NO;
kRemovePlayNext = [prefs[@"removePlayNext"] boolValue] ?: NO;
kNoContinueWatching = [prefs[@"noContinueWatching"] boolValue] ?: NO;
kNoSearchHistory = [prefs[@"noSearchHistory"] boolValue] ?: NO;
kNoRelatedWatchNexts = [prefs[@"noRelatedWatchNexts"] boolValue] ?: NO;
kStickSortComments = [prefs[@"stickSortComments"] boolValue] ?: NO;
kHideSortComments = [prefs[@"hideSortComments"] boolValue] ?: NO;
kPlaylistOldMinibar = [prefs[@"playlistOldMinibar"] boolValue] ?: NO;
kDisableRTL = [prefs[@"disableRTL"] boolValue] ?: NO;
kPivotIndex = (prefs[@"pivotIndex"] != nil) ? [prefs[@"pivotIndex"] intValue] : 0;
kAdvancedMode = [prefs[@"advancedMode"] boolValue] ?: NO;
kAdvancedModeReminder = [prefs[@"advancedModeReminder"] boolValue] ?: NO;
NSDictionary *newSettings = @{
@"noAds" : @(kNoAds),
@@ -647,13 +803,16 @@ static void reloadPrefs() {
@"noPromotionCards" : @(kNoPromotionCards),
@"noWatermarks" : @(kNoWatermarks),
@"miniplayer" : @(kMiniplayer),
@"portraitFullscreen" : @(kPortraitFullscreen),
@"disableAutoplay" : @(kDisableAutoplay),
@"noContentWarning" : @(kNoContentWarning),
@"classicQuality" : @(kClassicQuality),
@"extraSpeedOptions" : @(kExtraSpeedOptions),
@"dontSnapToChapter" : @(kDontSnapToChapter),
@"redProgressBar" : @(kRedProgressBar),
@"noHints" : @(kNoHints),
@"noFreeZoom" : @(kNoFreeZoom),
@"autoFullscreen" : @(kAutoFullscreen),
@"exitFullscreen" : @(kExitFullscreen),
@"noDoubleTapToSeek" : @(kNoDoubleTapToSeek),
@"hideShorts" : @(kHideShorts),
@@ -674,6 +833,7 @@ static void reloadPrefs() {
@"hideShortsChannelName" : @(kHideShortsChannelName),
@"hideShortsDescription" : @(kHideShortsDescription),
@"hideShortsAudioTrack" : @(kHideShortsAudioTrack),
@"hideShortsPromoCards" : @(kHideShortsPromoCards),
@"removeLabels" : @(kRemoveLabels),
@"reExplore" : @(kReExplore),
@"removeShorts" : @(kRemoveShorts),
@@ -682,8 +842,15 @@ static void reloadPrefs() {
@"removeLibrary" : @(kRemoveLibrary),
@"removePlayNext" : @(kRemovePlayNext),
@"noContinueWatching" : @(kNoContinueWatching),
@"noSearchHistory" : @(kNoSearchHistory),
@"noRelatedWatchNexts" : @(kNoRelatedWatchNexts),
@"stickSortComments" : @(kStickSortComments),
@"hideSortComments" : @(kHideSortComments),
@"playlistOldMinibar" : @(kPlaylistOldMinibar),
@"disableRTL" : @(kDisableRTL),
@"pivotIndex" : @(kPivotIndex),
@"advancedMode" : @(kAdvancedMode)
@"advancedMode" : @(kAdvancedMode),
@"advancedModeReminder" : @(kAdvancedModeReminder)
};
if (![newSettings isEqualToDictionary:prefs]) [newSettings writeToFile:path atomically:NO];
@@ -47,12 +47,16 @@
"Player" = "Player";
"Miniplayer" = "Enable mini player";
"MiniplayerDesc" = "Enables the mini player for videos that were not originally designed for it, such as videos targeted for children.";
"PortraitFullscreen" = "Portrait fullscreen mode";
"PortraitFullscreenDesc" = "Enables portrait fullscreen mode support.";
"DisableAutoplay" = "Disable Autoplay videos";
"DisableAutoplayDesc" = "Prevents video playback after opening.";
"NoContentWarning" = "Skip content warning";
"NoContentWarningDesc" = "Skips sensitive content warning message.";
"ClassicQuality" = "Classic video quality";
"ClassicQualityDesc" = "Brings back classic video quality selection menu.";
"ExtraSpeedOptions" = "Extra speed options";
"ExtraSpeedOptionsDesc" = "Adds more video playback speed options to the player menu.";
"DontSnap2Chapter" = "Disable snap to chapter";
"DontSnap2ChapterDesc" = "Disables skipping to the next episode by double-tap gesture.";
"RedProgressBar" = "Red progress bar";
@@ -61,6 +65,8 @@
"NoHintsDesc" = "Disables hints by author which appears at the top-right corner during playback.";
"NoFreeZoom" = "Disable free zoom gesture";
"NoFreeZoomDesc" = "Disables new free zoom gestures.";
"AutoFullscreen" = "Play videos in fullscreen";
"AutoFullscreenDesc" = "Automatically plays videos in fullscreen mode.";
"ExitFullscreen" = "Exit fullscreen mode on finish";
"ExitFullscreenDesc" = "Exits fullscreen mode at the end of video playback.";
"NoDoubleTap2Seek" = "Disable double tap to seek";
@@ -123,6 +129,18 @@
"RemovePlayNextDesc" = "Removes \"Play next in queue\" option from menu.";
"NoContinueWatching" = "Remove \"Continue watching\"";
"NoContinueWatchingDesc" = "Removes the \"Continue watching\" section containing unfinished videos from the Home page.";
"NoSearchHistory" = "Hide search history";
"NoSearchHistoryDesc" = "Visually hides search history and suggestions. Note: Your search history will still be accessible in your other YouTube clients.";
"NoRelatedWatchNexts" = "Hide all videos under player";
"NoRelatedWatchNextsDesc" = "Hides all videos below the player, leaving only the video info and comments section.";
"StickSortComments" = "Stick comments header";
"StickSortCommentsDesc" = "Pins sort comments header (Top, Newest) so that it won't disappear while scrolling.";
"HideSortComments" = "Hide comments header";
"HideSortCommentsDesc" = "Hides sort comments header (Top, Newest) so it will never appear.";
"PlaylistOldMinibar" = "Old playlist minibar";
"PlaylistOldMinibarDesc" = "Replaces the new floating playlist panel with the old one.";
"DisableRTL" = "Disable RTL formatting";
"DisableRTLDesc" = "Forcefully displays text in left-to-right (LTR) format for languages that are initially displayed in right-to-left (RTL).";
"Startup" = "Startup page";
"Home" = "Home";
@@ -137,7 +155,12 @@
"About" = "About";
"Credits" = "Credits";
"Developer" = "YTLite developer";
"ChineseSimplified" = "Chinese (Simplified) localization";
"ChineseTraditional" = "Chinese (Traditional) localization";
"French" = "French localization";
"Spanish" = "Spanish localization";
"Advanced" = "Advanced mode";
"AdvancedModeReminder" = "Would you like to activate Advanced mode for YTLite?\n\nThis mode provides more than 50 additional options to customize and optimize your YouTube experience. You can enable/disable it later from Settings → %@ → %@ → %@.";
"ResetSettings" = "Reset YTLite settings";
"ResetMessage" = "This option will reset YTLite settings to default and close YouTube.\n\nAre you sure you want to continue?";
"Yes" = "Yes";
@@ -0,0 +1,167 @@
"General" = "General";
"RemoveAds" = "Eliminar anuncios";
"RemoveAdsDesc" = "Elimina los anuncios dentro de la aplicación.";
"BackgroundPlayback" = "Reproducción en segundo plano";
"BackgroundPlaybackDesc" = "Permite la reproducción en segundo plano.";
"Navbar" = "Barra de navegación";
"RemoveCast" = "Ocultar botón de Cast";
"RemoveCastDesc" = "Oculta el botón de Cast de la barra de navegación.";
"RemoveNotifications" = "Ocultar botón de Notificaciones";
"RemoveNotificationsDesc" = "Oculta el botón de Notificaciones de la barra de navegación.";
"RemoveSearch" = "Ocultar botón de Búsqueda";
"RemoveSearchDesc" = "Oculta el botón de Búsqueda de la barra de navegación.";
"RemoveVoiceSearch" = "Ocultar botón de Búsqueda por voz";
"RemoveVoiceSearchDesc" = "Oculta el botón de Búsqueda por voz de la barra de navegación.";
"StickyNavbar" = "Barra de navegación fija";
"StickyNavbarDesc" = "Mantiene fija la barra de navegación para que permanezca visible al desplazarse hacia abajo.";
"NoSubbar" = "Ocultar subbarra";
"NoSubbarDesc" = "Oculta la subbarra (Todo, Novedades para ti, En directo, etc.) debajo de la barra de navegación.";
"NoYTLogo" = "Eliminar el logo de YouTube";
"NoYTLogoDesc" = "Elimina el logo de YouTube de la barra de navegación.";
"Overlay" = "Superposición";
"HideAutoplay" = "Ocultar interruptor de reproducción automática";
"HideAutoplayDesc" = "Oculta el interruptor de reproducción automática de la superposición.";
"HideSubs" = "Ocultar botón de subtítulos";
"HideSubsDesc" = "Oculta el botón de subtítulos de la superposición.";
"NoHUDMsgs" = "Ocultar mensajes de HUD";
"NoHUDMsgsDesc" = "Oculta todos los mensajes de funciones del reproductor. Ejemplo: CC está activado/desactivado, Repetir video está activado, etc.";
"HidePrevNext" = "Ocultar botones Anterior y Siguiente";
"HidePrevNextDesc" = "Oculta los botones de video Anterior y Siguiente de la superposición.";
"ReplacePrevNext" = "Botones de Avance rápido y Rebobinado";
"ReplacePrevNextDesc" = "Reemplaza los botones de video Anterior y Siguiente por botones de Avance rápido y Rebobinado en la superposición.";
"NoDarkBg" = "Eliminar fondo oscuro";
"NoDarkBgDesc" = "Elimina el fondo oscuro de la superposición.";
"NoEndScreenCards" = "Ocultar tarjetas emergentes de fin de pantalla";
"NoEndScreenCardsDesc" = "Oculta las tarjetas emergentes de fin de pantalla (miniaturas) al final de los vídeos.";
"NoFullscreenActions" = "Desactivar acciones en pantalla completa";
"NoFullscreenActionsDesc" = "Desactiva el panel de acciones en el modo de pantalla completa.";
"NoRelatedVids" = "Sin vídeos relacionados en la superposición";
"NoRelatedVidsDesc" = "Elimina los vídeos relacionados que se muestran en la superposición al deslizar hacia arriba.";
"NoPromotionCards" = "Ocultar tarjetas de promoción pagada";
"NoPromotionCardsDesc" = "Oculta la tarjeta \"Incluye promociones pagadas\" en los vídeos que incluyen promociones pagadas.";
"NoWatermarks" = "Ocultar marcas de agua";
"NoWatermarksDesc" = "Oculta las marcas de agua del canal del reproductor.";
"Player" = "Reproductor";
"Miniplayer" = "Activar mini reproductor";
"MiniplayerDesc" = "Activa el mini reproductor para vídeos que no fueron diseñados originalmente para ello, como los vídeos dirigidos a niños.";
"PortraitFullscreen" = "Modo de pantalla completa vertical";
"PortraitFullscreenDesc" = "Activa el modo de pantalla completa vertical.";
"DisableAutoplay" = "Desactivar reproducción automática";
"DisableAutoplayDesc" = "Evita la reproducción automática de vídeos después de abrirlos.";
"NoContentWarning" = "Omitir advertencia de contenido";
"NoContentWarningDesc" = "Omite el mensaje de advertencia de contenido sensible.";
"ClassicQuality" = "Calidad de vídeo clásica";
"ClassicQualityDesc" = "Devuelve el menú clásico de selección de calidad de vídeo.";
"ExtraSpeedOptions" = "Opciones adicionales de velocidad";
"ExtraSpeedOptionsDesc" = "Agrega más opciones de velocidad de reproducción de vídeo al menú del reproductor.";
"DontSnap2Chapter" = "Desactivar saltar al siguiente capítulo";
"DontSnap2ChapterDesc" = "Desactiva el salto al siguiente episodio mediante el gesto de doble toque.";
"RedProgressBar" = "Barra de progreso roja";
"RedProgressBarDesc" = "Devuelve la barra de progreso roja.";
"NoHints" = "Desactivar sugerencias";
"NoHintsDesc" = "Desactiva las sugerencias del autor que aparecen en la esquina superior derecha durante la reproducción.";
"NoFreeZoom" = "Desactivar gesto de zoom libre";
"NoFreeZoomDesc" = "Desactiva los nuevos gestos de zoom libre.";
"AutoFullscreen" = "Reproducir vídeos en pantalla completa";
"AutoFullscreenDesc" = "Reproduce automáticamente los vídeos en modo de pantalla completa.";
"ExitFullscreen" = "Salir del modo de pantalla completa al finalizar";
"ExitFullscreenDesc" = "Sale del modo de pantalla completa al finalizar la reproducción del vídeo.";
"NoDoubleTap2Seek" = "Desactivar doble toque para buscar";
"NoDoubleTap2SeekDesc" = "Desactiva el gesto de doble toque para buscar.";
"Tabbar" = "Barra de pestañas";
"RemoveLabels" = "Eliminar etiquetas";
"RemoveLabelsDesc" = "Elimina las etiquetas de las pestañas.";
"ReExplore" = "Reemplazar pestaña Shorts con pestaña Explorar";
"ReExploreDesc" = "Muestra la pestaña Explorar en lugar de la pestaña Shorts como en versiones antiguas de YouTube.";
"HideShortsTab" = "Ocultar pestaña Shorts";
"HideShortsTabDesc" = "Oculta la pestaña Shorts de la barra de pestañas.";
"HideSubscriptionsTab" = "Ocultar pestaña Suscripciones";
"HideSubscriptionsTabDesc" = "Oculta la pestaña Suscripciones de la barra de pestañas.";
"HideUploadButton" = "Ocultar botón Subir";
"HideUploadButtonDesc" = "Oculta el botón Subir de la barra de pestañas.";
"HideLibraryTab" = "Ocultar pestaña Biblioteca";
"HideLibraryTabDesc" = "Oculta la pestaña Biblioteca de la barra de pestañas.";
"Shorts" = "Shorts";
"HideShorts" = "Ocultar vídeos Shorts";
"HideShortsDesc" = "Oculta los vídeos Shorts de la página de inicio, Recomendados, etc. (No se aplica al historial de reproducciones)";
"ShortsProgress" = "Activar barra de progreso";
"ShortsProgressDesc" = "Muestra una barra de progreso en la superposición de Shorts.";
"ResumeShorts" = "No empezar desde la pestaña Shorts";
"ResumeShortsDesc" = "Evita empezar desde los vídeos Shorts al abrir la aplicación, lo cual ocurre si YouTube se cerró mientras se veían Shorts.";
"HideShortsLogo" = "Ocultar el logo de Shorts";
"HideShortsLogoDesc" = "Oculta el logo de Shorts en la esquina superior izquierda.";
"HideShortsSearch" = "Ocultar botón de búsqueda";
"HideShortsSearchDesc" = "Oculta el botón de búsqueda en la superposición de Shorts.";
"HideShortsCamera" = "Ocultar botón de cámara";
"HideShortsCameraDesc" = "Oculta el botón de cámara en la superposición de Shorts.";
"HideShortsMore" = "Ocultar botón Más (⋮)";
"HideShortsMoreDesc" = "Oculta el botón Más (⋮) en la superposición de Shorts. También se puede acceder manteniendo presionada la pantalla.";
"HideShortsSubscriptions" = "Ocultar botón de Suscripciones";
"HideShortsSubscriptionsDesc" = "Oculta el botón de Suscripciones que aparece cuando se pausa un vídeo Shorts.";
"HideShortsLike" = "Ocultar botón de Me gusta";
"HideShortsLikeDesc" = "Oculta el botón de Me gusta en la superposición de Shorts.";
"HideShortsDislike" = "Ocultar botón de No me gusta";
"HideShortsDislikeDesc" = "Oculta el botón de No me gusta en la superposición de Shorts.";
"HideShortsComments" = "Ocultar botón de Comentarios";
"HideShortsCommentsDesc" = "Oculta el botón de Comentarios en la superposición de Shorts.";
"HideShortsRemix" = "Ocultar botón de Remixer";
"HideShortsRemixDesc" = "Oculta el botón de Remixer en la superposición de Shorts.";
"HideShortsShare" = "Ocultar botón de Compartir";
"HideShortsShareDesc" = "Oculta el botón de Compartir en la superposición de Shorts.";
"HideShortsAvatars" = "Ocultar avatar de los canales";
"HideShortsAvatarsDesc" = "Oculta la imagen de perfil en la esquina inferior derecha.";
"HideShortsThanks" = "Ocultar botón de Supergracias";
"HideShortsThanksDesc" = "Oculta el botón de Supergracias (Donar) en la superposición de Shorts.";
"HideShortsChannelName" = "Ocultar nombre del canal";
"HideShortsChannelNameDesc" = "Oculta el nombre del canal y el botón de Suscribirse en la superposición de Shorts.";
"HideShortsDescription" = "Ocultar descripción";
"HideShortsDescriptionDesc" = "Oculta la descripción de Shorts debajo del nombre del canal.";
"HideShortsAudioTrack" = "Ocultar pista de audio";
"HideShortsAudioTrackDesc" = "Oculta la pista de audio debajo de la descripción de Shorts.";
"Other" = "Otro";
"RemovePlayNext" = "Eliminar \"Reproducir siguiente en cola\"";
"RemovePlayNextDesc" = "Elimina la opción \"Reproducir siguiente en cola\" del menú.";
"NoContinueWatching" = "Eliminar \"Continuar viendo\"";
"NoContinueWatchingDesc" = "Elimina la sección \"Continuar viendo\" que contiene videos sin terminar de la página de inicio.";
"NoSearchHistory" = "Ocultar el historial de búsqueda";
"NoSearchHistoryDesc" = "Oculta visualmente el historial de búsqueda y las sugerencias. Nota: El historial de búsqueda seguirá siendo accesible en otros clientes de YouTube.";
"NoRelatedWatchNexts" = "Ocultar todos los vídeos del reproductor";
"NoRelatedWatchNextsDesc" = "Oculta todos los vídeos debajo del reproductor, dejando sólo la información del vídeo y la sección de comentarios.";
"StickSortComments" = "Pegar cabecera de comentarios";
"StickSortCommentsDesc" = "Los pines ordenan la cabecera de comentarios (Arriba, Más reciente) para que no desaparezca al desplazarse.";
"HideSortComments" = "Ocultar cabecera de comentarios";
"HideSortCommentsDesc" = "Oculta la cabecera de los comentarios de ordenación (Top, Newest) para que nunca aparezca.";
"PlaylistOldMinibar" = "Lista de reproducción antigua minibar";
"PlaylistOldMinibarDesc" = "Sustituye el nuevo panel flotante de listas de reproducción por el antiguo.";
"DisableRTL" = "Desactivar el formato RTL";
"DisableRTLDesc" = "Muestra forzosamente el texto en formato de izquierda a derecha (LTR) para los idiomas que se muestran inicialmente en formato de derecha a izquierda (RTL).";
"Startup" = "Página de inicio";
"Home" = "Inicio";
"Explore" = "Explorar";
"ShortsTab" = "Shorts";
"Subscriptions" = "Suscripciones";
"Library" = "Biblioteca";
"Warning" = "Advertencia";
"TabIsHidden" = "No se puede seleccionar una pestaña oculta como página de inicio";
"Version" = "Versión";
"About" = "Acerca de";
"Credits" = "Créditos";
"Developer" = "Desarrollador de YTLite";
"ChineseSimplified" = "Traducción: Chino (Simplificado)";
"ChineseTraditional" = "Traducción: Chino (Tradicional)";
"French" = "Traducción: Frances";
"Spanish" = "Traducción: Español";
"Advanced" = "Modo avanzado";
"AdvancedModeReminder" = "¿Desea activar el modo Avanzado para YTLite?\n\nEste modo ofrece más de 50 opciones adicionales para personalizar y optimizar tu experiencia en YouTube. Puedes activarlo/desactivarlo más tarde desde Ajustes → %@ → %@ → %@.";
"ResetSettings" = "Restablecer configuración de YTLite";
"ResetMessage" = "Esta opción restablecerá la configuración de YTLite a los valores predeterminados y cerrará YouTube.\n\n¿Estás seguro de que deseas continuar?";
"Yes" = "Sí";
"No" = "No";
@@ -0,0 +1,169 @@
"General" = "Général";
"RemoveAds" = "Supprimer les publicités";
"RemoveAdsDesc" = "Supprime les publicités intégrées.";
"BackgroundPlayback" = "Lecture en arrière-plan";
"BackgroundPlaybackDesc" = "Active la lecture en arrière-plan.";
"Navbar" = "Barre de navigation";
"RemoveCast" = "Masquer le bouton Cast";
"RemoveCastDesc" = "Masque le bouton Cast de la barre de navigation.";
"RemoveNotifications" = "Masquer le bouton Notifications";
"RemoveNotificationsDesc" = "Masque le bouton Notifications de la barre de navigation.";
"RemoveSearch" = "Masquer le bouton Recherche";
"RemoveSearchDesc" = "Masque le bouton Recherche de la barre de navigation.";
"RemoveVoiceSearch" = "Masquer le bouton Recherche vocale";
"RemoveVoiceSearchDesc" = "Masque le bouton Recherche vocale de la barre de navigation.";
"StickyNavbar" = "Barre de navigation épinglée";
"StickyNavbarDesc" = "Épingle la barre de navigation pour qu'elle reste visible lors du défilement vers le bas.";
"NoSubbar" = "Masquer la sous-barre";
"NoSubbarDesc" = "Masque la sous-barre (Tous, Nouveautés, En direct, etc.) sous la barre de navigation.";
"NoYTLogo" = "Supprimer le logo YouTube";
"NoYTLogoDesc" = "Supprime le logo YouTube dans la barre de navigation.";
"Overlay" = "Overlay";
"HideAutoplay" = "Masquer l'interrupteur de lecture automatique";
"HideAutoplayDesc" = "Masque l'interrupteur de lecture automatique de l'overlay.";
"HideSubs" = "Masquer le bouton Sous-titres";
"HideSubsDesc" = "Masque le bouton Sous-titres de l'overlay.";
"NoHUDMsgs" = "Masquer les messages HUD";
"NoHUDMsgsDesc" = "Masque tous les messages des fonctionnalités du lecteur. Exemple: les sous-titres sont activés/désactivés, la boucle vidéo est activée, etc.";
"HidePrevNext" = "Masquer les boutons Précédent et Suivant";
"HidePrevNextDesc" = "Masque les boutons vidéo Précédent et Suivant de l'overlay.";
"ReplacePrevNext" = "Boutons Avance rapide et Retour rapide";
"ReplacePrevNextDesc" = "Remplace les boutons vidéo Précédent et Suivant par des boutons Avance rapide et Retour rapide dans l'overlay.";
"NoDarkBg" = "Supprimer l'arrière-plan sombre";
"NoDarkBgDesc" = "Supprime l'arrière-plan sombre de l'overlay.";
"NoEndScreenCards" = "Masquer les cartes de fin d'écran";
"NoEndScreenCardsDesc" = "Masque les cartes de fin d'écran (vignettes) à la fin des vidéos.";
"NoFullscreenActions" = "Désactiver les actions en plein écran";
"NoFullscreenActionsDesc" = "Désactive le panneau d'actions en mode plein écran.";
"NoRelatedVids" = "Pas de vidéos associées dans l'overlay";
"NoRelatedVidsDesc" = "Supprime les vidéos associées affichées dans l'overlay en faisant glisser vers le haut.";
"NoPromotionCards" = "Masquer les cartes de promotion payante";
"NoPromotionCardsDesc" = "Masque la carte \"Comprend des promotions payantes\" dans les vidéos avec promotions incluses.";
"NoWatermarks" = "Masquer les filigranes";
"NoWatermarksDesc" = "Masque les filigranes de chaîne dans le lecteur.";
"Player" = "Lecteur";
"Miniplayer" = "Activer le mini-lecteur";
"MiniplayerDesc" = "Active le mini-lecteur pour les vidéos qui n'étaient pas initialement conçues pour cela, comme les vidéos destinées aux enfants.";
"PortraitFullscreen" = "Mode plein écran en portrait";
"PortraitFullscreenDesc" = "Active la prise en charge du mode plein écran en portrait.";
"DisableAutoplay" = "Désactiver la lecture automatique des vidéos";
"DisableAutoplayDesc" = "Empêche la lecture des vidéos après ouverture.";
"NoContentWarning" = "Passer l'avertissement de contenu";
"NoContentWarningDesc" = "Ignore le message d'avertissement de contenu sensible.";
"ClassicQuality" = "Qualité vidéo classique";
"ClassicQualityDesc" = "Rétablit le menu de sélection de la qualité vidéo classique.";
"ExtraSpeedOptions"= "Options de vitesse supplémentaires";
"ExtraSpeedOptionsDesc" = "Ajoute des options de vitesse de lecture supplémentaires au menu de vitesse.";
"DontSnap2Chapter" = "Désactiver la capture au chapitre";
"DontSnap2ChapterDesc" = "Désactive le passage à l'épisode suivant en effectuant un geste de double-tape.";
"DontSnap2Chapter" = "Désactiver la coupure au chapitre";
"DontSnap2ChapterDesc" = "Désactive le passage à l'épisode suivant en double tapant.";
"RedProgressBar" = "Barre de progression rouge";
"RedProgressBarDesc" = "Ramène la barre de progression rouge.";
"NoHints" = "Désactiver les indices";
"NoHintsDesc" = "Désactive les indices de l'auteur qui apparaissent dans le coin supérieur droit pendant la lecture.";
"NoFreeZoom" = "Désactiver le geste de zoom libre";
"NoFreeZoomDesc" = "Désactive les nouveaux gestes de zoom libre.";
"AutoFullscreen" = "Lire les vidéos en plein écran";
"AutoFullscreenDesc" = "Lance automatiquement les vidéos en mode plein écran.";
"ExitFullscreen" = "Quitter le mode plein écran à la fin";
"ExitFullscreenDesc" = "Quitte le mode plein écran à la fin de la lecture de la vidéo.";
"NoDoubleTap2Seek" = "Désactiver le double tap pour chercher";
"NoDoubleTap2SeekDesc" = "Désactive le geste de double tap pour chercher.";
"Tabbar" = "Barre d'onglets";
"RemoveLabels" = "Supprimer les sous-titres";
"RemoveLabelsDesc" = "Supprime les sous-titres des onglets.";
"ReExplore" = "Remplacer l'onglet Shorts par l'onglet Explorer";
"ReExploreDesc" = "Affiche l'onglet Explorer à la place de l'onglet Shorts comme dans les anciennes versions de YouTube.";
"HideShortsTab" = "Masquer l'onglet Shorts";
"HideShortsTabDesc" = "Masque l'onglet Shorts de la barre d'onglets";
"HideSubscriptionsTab" = "Masquer l'onglet Abonnements";
"HideSubscriptionsTabDesc" = "Masque l'onglet Abonnements de la barre d'onglets";
"HideUploadButton" = "Masquer le bouton de téléchargement";
"HideUploadButtonDesc" = "Masque le bouton de téléchargement de la barre d'onglets";
"HideLibraryTab" = "Masquer l'onglet Bibliothèque";
"HideLibraryTabDesc" = "Masque l'onglet Bibliothèque de la barre d'onglets";
"Shorts" = "Shorts";
"HideShorts" = "Masquer les vidéos Shorts";
"HideShortsDesc" = "Masque les vidéos Shorts de la page d'accueil, des recommandations, etc. (Non appliqué à l'historique de visionnage)";
"ShortsProgress" = "Activer la barre de progression";
"ShortsProgressDesc" = "Affiche la barre de progression dans l'overlay Shorts.";
"ResumeShorts" = "Ne pas démarrer depuis l'onglet Shorts";
"ResumeShortsDesc" = "Empêche de démarrer depuis les vidéos Shorts lors de l'ouverture de l'application, ce qui se produit si YouTube était fermé pendant la lecture des Shorts.";
"HideShortsLogo" = "Masquer le logo Shorts";
"HideShortsLogoDesc" = "Masque le logo Shorts dans le coin supérieur gauche.";
"HideShortsSearch" = "Masquer le bouton de recherche";
"HideShortsSearchDesc" = "Masque le bouton de recherche de l'overlay Shorts.";
"HideShortsCamera" = "Masquer le bouton de l'appareil photo";
"HideShortsCameraDesc" = "Masque le bouton de l'appareil photo de l'overlay Shorts.";
"HideShortsMore" = "Masquer le bouton Plus (⋮)";
"HideShortsMoreDesc" = "Masque le bouton Plus (⋮) de l'overlay Shorts. Il est également accessible en appuyant longuement sur l'écran.";
"HideShortsSubscriptions" = "Masquer le bouton Abonnements";
"HideShortsSubscriptionsDesc" = "Masque le bouton Abonnements qui apparaît lorsque les Shorts sont en pause.";
"HideShortsLike" = "Masquer le bouton J'aime";
"HideShortsLikeDesc" = "Masque le bouton J'aime de l'overlay Shorts.";
"HideShortsDislike" = "Masquer le bouton Je n'aime pas";
"HideShortsDislikeDesc" = "Masque le bouton Je n'aime pas de l'overlay Shorts.";
"HideShortortsComments" = "Masquer le bouton Commentaires";
"HideShortsCommentsDesc" = "Masque le bouton Commentaires de l'overlay Shorts.";
"HideShortsRemix" = "Masquer le bouton Remix";
"HideShortsRemixDesc" = "Masque le bouton Remix de l'overlay Shorts.";
"HideShortsShare" = "Masquer le bouton Partager";
"HideShortsShareDesc" = "Masque le bouton Partager de l'overlay Shorts.";
"HideShortsAvatars" = "Masquer les avatars des chaînes";
"HideShortsAvatarsDesc" = "Masque la photo de profil dans le coin inférieur droit.";
"HideShortsThanks" = "Masquer le bouton Superthanks";
"HideShortsThanksDesc" = "Masque le bouton Superthanks (Don) de l'overlay Shorts.";
"HideShortsChannelName" = "Masquer le nom de la chaîne";
"HideShortsChannelNameDesc" = "Masque le nom de la chaîne et le bouton S'abonner de l'overlay Shorts.";
"HideShortsDescription" = "Masquer la description";
"HideShortsDescriptionDesc" = "Masque la description des Shorts sous le nom de la chaîne.";
"HideShortsAudioTrack" = "Masquer la piste audio";
"HideShortsAudioTrackDesc" = "Masque la piste audio sous la description des Shorts.";
"Other" = "Autre";
"RemovePlayNext" = "Supprimer \"Placer en première position dans la file d'attente\"";
"RemovePlayNextDesc" = "Supprime l'option \"Placer en première position dans la file d'attente\" du menu.";
"NoContinueWatching" = "Supprimer \"Continuer à regarder\"";
"NoContinueWatchingDesc" = "Supprime la section \"Continuer à regarder\" contenant les vidéos inachevées de la page d'accueil.";
"NoSearchHistory" = "Hide search history";
"NoSearchHistoryDesc" = "Visually hides search history and suggestions. Note: Your search history will still be accessible in your other YouTube clients.";
"NoRelatedWatchNexts" = "Hide all videos under player";
"NoRelatedWatchNextsDesc" = "Hides all videos below the player, leaving only the video info and comments section.";
"StickSortComments" = "Stick comments header";
"StickSortCommentsDesc" = "Pins sort comments header (Top, Newest) so that it won't disappear while scrolling.";
"HideSortComments" = "Hide comments header";
"HideSortCommentsDesc" = "Hides sort comments header (Top, Newest) so it will never appear.";
"PlaylistOldMinibar" = "Old playlist minibar";
"PlaylistOldMinibarDesc" = "Replaces the new floating playlist panel with the old one.";
"DisableRTL" = "Disable RTL formatting";
"DisableRTLDesc" = "Forcefully displays text in left-to-right (LTR) format for languages that are initially displayed in right-to-left (RTL).";
"Startup" = "Page de démarrage";
"Home" = "Accueil";
"Explore" = "Explorer";
"ShortsTab" = "Shorts";
"Subscriptions" = "Abonnements";
"Library" = "Bibliothèque";
"Warning" = "Avertissement";
"TabIsHidden" = "L'onglet masqué ne peut pas être sélectionné comme page de démarrage";
"Version" = "Version";
"About" = "À propos";
"Credits" = "Crédits";
"Developer" = "Développeur YTLite";
"ChineseSimplified" = "Traduction chinoise (simplifiée)";
"ChineseTraditional" = "Traduction chinoise (traditionnelle)";
"French" = "Traduction française";
"Spanish" = "Traduction espagnole";
"Advanced" = "Mode avancé";
"AdvancedModeReminder" = "Voulez-vous activer le mode avancé pour YTLite ?\n\nCe mode offre plus de 50 options supplémentaires pour personnaliser et optimiser votre expérience YouTube. Vous pouvez l'activer/désactiver ultérieurement depuis Paramètres → %@ → %@ → %@.";
"ResetSettings" = "Réinitialiser les paramètres YTLite";
"ResetMessage" = "Cette option réinitialisera les paramètres YTLite par défaut et fermera YouTube.\n\nÊtes-vous sûr de vouloir continuer ?";
"Yes" = "Oui";
"No" = "Non";
@@ -0,0 +1,168 @@
"General" = "一般";
"RemoveAds" = "広告を削除";
"RemoveAdsDesc" = "アプリ内の広告を削除します";
"BackgroundPlayback" = "バックグラウンド再生";
"BackgroundPlaybackDesc" = "バックグラウンドでの再生を有効にします";
"Navbar" = "ナビゲーションバー";
"RemoveCast" = "キャストボタンを非表示";
"RemoveCastDesc" = "ナビゲーションバーからキャストボタンを非表示にします";
"RemoveNotifications" = "通知ボタンを非表示";
"RemoveNotificationsDesc" = "ナビゲーションバーから通知ボタンを非表示にします";
"RemoveSearch" = "検索ボタンを非表示";
"RemoveSearchDesc" = "ナビゲーションバーから検索ボタンを非表示にします";
"RemoveVoiceSearch" = "音声検索ボタンを非表示";
"RemoveVoiceSearchDesc" = "ナビゲーションバーから音声検索ボタンを非表示にします";
"StickyNavbar" = "固定ナビゲーションバー";
"StickyNavbarDesc" = "スクロールしてもナビゲーションバーが表示されたままになるように固定します";
"NoSubbar" = "サブバーを非表示";
"NoSubbarDesc" = "ナビゲーションバーの下にあるサブバー(全て,音楽,ライブなど)を非表示にします";
"NoYTLogo" = "YouTubeロゴを削除";
"NoYTLogoDesc" = "ナビゲーションバーのYouTubeロゴを削除します";
"Overlay" = "オーバーレイ";
"HideAutoplay" = "自動再生スイッチを非表示";
"HideAutoplayDesc" = "オーバーレイから自動再生スイッチを非表示にします";
"HideSubs" = "字幕ボタンを非表示";
"HideSubsDesc" = "オーバーレイから字幕ボタンを非表示にします";
"NoHUDMsgs" = "HUDメッセージを非表示";
"NoHUDMsgsDesc" = "プレイヤーからすべての機能メッセージを非表示にします。例:CCをオン/オフにする,ビデオループがオンになっているなど";
"HidePrevNext" = "前へ,次へボタンを非表示";
"HidePrevNextDesc" = "オーバーレイから前へ、次へのビデオボタンを非表示にします";
"ReplacePrevNext" = "早送り、巻き戻しボタンに置き換え";
"ReplacePrevNextDesc" = "オーバーレイの前へ,次へのビデオボタンを早送り,巻き戻しボタンに置き換えます";
"NoDarkBg" = "暗い背景を削除";
"NoDarkBgDesc" = "オーバーレイの暗い背景を削除します";
"NoEndScreenCards" = "エンドスクリーンのホバーカードを非表示";
"NoEndScreenCardsDesc" = "動画の終わりに表示されるエンドスクリーン(サムネイル)を非表示にします";
"NoFullscreenActions" = "フルスクリーンアクションを無効化";
"NoFullscreenActionsDesc" = "フルスクリーンモードでのアクションパネルを無効にします";
"NoRelatedVids" = "オーバーレイの関連動画を非表示";
"NoRelatedVidsDesc" = "スワイプアップでオーバーレイに表示される関連動画を非表示にします";
"NoPromotionCards" = "有料プロモーションカードを非表示";
"NoPromotionCardsDesc" = "プロモーションが含まれている動画の\"有料プロモーションを含む\"カードを非表示にします";
"NoWatermarks" = "ウォーターマークを非表示";
"NoWatermarksDesc" = "プレイヤーからチャンネルの透かしを非表示にします";
"Player" = "プレイヤー";
"Miniplayer" = "ミニプレイヤーを有効化";
"MiniplayerDesc" = "ミニプレイヤーに対応していない動画(子供向けの動画など)でもミニプレイヤーを有効にします";
"PortraitFullscreen" = "縦画面フルスクリーンモード";
"PortraitFullscreenDesc" = "縦画面フルスクリーンモードをサポートします";
"DisableAutoplay" = "自動再生を無効化";
"DisableAutoplayDesc" = "アプリを開いた後に動画の自動再生を防止します";
"NoContentWarning" = "コンテンツ警告をスキップ";
"NoContentWarningDesc" = "不適切なコンテンツの警告メッセージをスキップします";
"ClassicQuality" = "クラシックなビデオ品質";
"ClassicQualityDesc" = "クラシックなビデオ品質選択メニューを復元します";
"ExtraSpeedOptions" = "追加の再生速度オプション";
"ExtraSpeedOptionsDesc" = "プレイヤーメニューに追加の再生速度オプションを追加します";
"DontSnap2Chapter" = "チャプターへのスナップを無効化";
"DontSnap2ChapterDesc" = "ダブルタップジェスチャーで次のエピソードへスキップするのを無効にします";
"RedProgressBar" = "赤いプログレスバー";
"RedProgressBarDesc" = "赤いプログレスバーバーを復元します";
"NoHints" = "ヒントを無効化";
"NoHintsDesc" = "プレイバック中に作者によるヒントを右上隅に表示するのを無効にします";
"NoFreeZoom" = "フリーズームジェスチャーを無効化";
"NoFreeZoomDesc" = "新しいフリーズームジェスチャーを無効にします";
"AutoFullscreen" = "動画をフルスクリーンで再生";
"AutoFullscreenDesc" = "動画を自動的にフルスクリーンモードで再生します";
"ExitFullscreen" = "再生終了時にフルスクリーンモードを終了";
"ExitFullscreenDesc" = "動画再生が終了したときにフルスクリーンモードを終了します";
"NoDoubleTap2Seek" = "ダブルタップでのシークを無効化";
"NoDoubleTap2SeekDesc" = "ダブルタップでのシークジェスチャーを無効にします";
"Tabbar" = "タブバー";
"RemoveLabels" = "ラベルを削除";
"RemoveLabelsDesc" = "タブラベルを削除します";
"ReExplore" = "ショートタブを探索タブに置き換え";
"ReExploreDesc" = "古いYouTubeバージョンのように、ショートタブの代わりに探索タブを表示します";
"HideShortsTab" = "ショートタブを非表示";
"HideShortsTabDesc" = "タブバーからショートタブを非表示にします";
"HideSubscriptionsTab" = "登録チャンネルタブを非表示";
"HideSubscriptionsTabDesc" = "タブバーから登録チャンネルタブを非表示にします";
"HideUploadButton" = "アップロードボタンを非表示";
"HideUploadButtonDesc" = "タブバーからアップロードボタンを非表示にします";
"HideLibraryTab" = "ライブラリタブを非表示;
"HideLibraryTabDesc" = "タブバーからライブラリタブを非表示にします";
"Shorts" = "ショート";
"HideShorts" = "ショート動画を非表示";
"HideShortsDesc" = "ホームページ、おすすめなどからショート動画を非表示にします(視聴履歴には適用されません)";
"ShortsProgress" = "プログレスバーを有効化";
"ShortsProgressDesc" = "ショートオーバーレイに進行バーを表示します";
"ResumeShorts" = "ショートタブからの再開を防止";
"ResumeShortsDesc" = "YouTubeがショートを視聴中にアプリを閉じた場合でも、ショート動画からの再開を防止します";
"HideShortsLogo" = "ショートロゴを非表示";
"HideShortsLogoDesc" = "左上隅のショートロゴを非表示にします";
"HideShortsSearch" = "検索ボタンを非表示";
"HideShortsSearchDesc" = "ショートオーバーレイから検索ボタンを非表示にします";
"HideShortsCamera" = "カメラボタンを非表示";
"HideShortsCameraDesc" = "ショートオーバーレイからカメラボタンを非表示にします";
"HideShortsMore" = "その他(⋮)ボタンを非表示";
"HideShortsMoreDesc" = "ショートオーバーレイからその他(⋮)ボタンを非表示にします。画面の長押しでアクセスも可能です";
"HideShortsSubscriptions" = "サブスクリプションボタンを非表示";
"HideShortsSubscriptionsDesc" = "ショートが一時停止されたときに表示されるサブスクリプションボタンを非表示にします";
"HideShortsLike" = "いいねボタンを非表示";
"HideShortsLikeDesc" = "ショートオーバーレイからいいねボタンを非表示にします";
"HideShortsDislike" = "低評価ボタンを非表示";
"HideShortsDislikeDesc" = "ショートオーバーレイから低評価ボタンを非表示にします";
"HideShortsComments" = "コメントボタンを非表示";
"HideShortsCommentsDesc" = "ショートオーバーレイからコメントボタンを非表示にします";
"HideShortsRemix" = "リミックスボタンを非表示";
"HideShortsRemixDesc" = "ショートオーバーレイからリミックスボタンを非表示にします";
"HideShortsShare" = "共有ボタンを非表示";
"HideShortsShareDesc" = "ショートオーバーレイから共有ボタンを非表示にします";
"HideShortsAvatars" = "チャンネルのアバターを非表示";
"HideShortsAvatarsDesc" = "右下隅のプロフィール画像を非表示にします";
"HideShortsThanks" = "スーパーサンクスボタンを非表示";
"HideShortsThanksDesc" = "ショートオーバーレイからスーパーサンクス(寄付)ボタンを非表示にします";
"HideShortsChannelName" = "チャンネル名を非表示";
"HideShortsChannelNameDesc" = "ショートオーバーレイからチャンネル名とサブスクリプションボタンを非表示にします";
"HideShortsDescription" = "説明を非表示";
"HideShortsDescriptionDesc" = "チャンネル名の下に表示されるショートの説明を非表示にします";
"HideShortsAudioTrack" = "オーディオトラックを非表示";
"HideShortsAudioTrackDesc" = "ショートの説明の下に表示されるオーディオトラックを非表示にします";
"Other" = "その他";
"RemovePlayNext" = "\"次に再生\"を削除";
"RemovePlayNextDesc" = "メニューから\"次に再生\"オプションを削除します";
"NoContinueWatching" = "\"続きを見る\"を削除";
"NoContinueWatchingDesc" = "ホームページに未完成の動画を含む\"続きを見る\"セクションを削除します";
"NoSearchHistory" = "検索履歴を非表示";
"NoSearchHistoryDesc" = "検索履歴とサジェストを視覚的に非表示にします。注意:検索履歴は他のYouTubeクライアントからアクセス可能です";
"NoRelatedWatchNexts" = "プレイヤー下のすべての動画を非表示";
"NoRelatedWatchNextsDesc" = "プレイヤー下に表示されるすべての動画を非表示にし、ビデオ情報とコメントセクションのみにします";
"StickSortComments" = "コメントヘッダーを固定";
"StickSortCommentsDesc" = "コメントのソートヘッダー(トップ,最新)をスクロールしても消えないように固定します";
"HideSortComments" = "コメントヘッダーを非表示";
"HideSortCommentsDesc" = "コメントのソートヘッダー(トップ,最新)を表示しないようにします";
"PlaylistOldMinibar" = "古いプレイリストミニバー";
"PlaylistOldMinibarDesc" = "新しいフローティングプレイリストパネルを古いものに置き換えます";
"DisableRTL" = "RTLフォーマットを無効化";
"DisableRTLDesc" = "RTLで表示される言語を左から右(LTR)の形式で表示するように強制します";
"Startup" = "スタートアップページ";
"Home" = "ホーム";
"Explore" = "探索";
"ShortsTab" = "ショート";
"Subscriptions" = "サブスクリプション";
"Library" = "ライブラリ";
"Warning" = "警告";
"TabIsHidden" = "非表示のタブはスタートアップページとして選択できません";
"Version" = "バージョン";
"About" = "About";
"Credits" = "クレジット";
"Developer" = "YTLiteの開発者";
"ChineseSimplified" = "中国語(簡体字)翻訳";
"ChineseTraditional" = "中国語(繁体字)翻訳";
"French" = "フランス語翻訳";
"Spanish" = "スペイン語翻訳";
"Japanese" = "日本語翻訳";
"Advanced" = "アドバンスモード";
"AdvancedModeReminder" = "YTLiteでアドバンスモードを有効にしますか?\n\nこのモードでは50以上の追加オプションを使用してYouTubeのカスタマイズと最適化が可能です。後で、設定 → %@ → %@ → %@から変更できます";
"ResetSettings" = "YTLiteの設定をリセット";
"ResetMessage" = "このオプションを選択するとYTLiteの設定がデフォルトにリセットされ、YouTubeが終了します。\n\n続行してもよろしいですか?";
"Yes" = "はい";
"No" = "いいえ";
@@ -47,12 +47,16 @@
"Player" = "Настройки плеера";
"Miniplayer" = "Разрешить миниплеер";
"MiniplayerDesc" = "Принудительно активирует миниплеер для видео, в которых изначально не был предназначен (например, видеоролики для детей).";
"PortraitFullscreen" = "Портретный полноэкранный режим";
"PortraitFullscreenDesc" = "Активирует поддержку портретного полноэкранного режима.";
"DisableAutoplay" = "Запретить автовоспроизведение";
"DisableAutoplayDesc" = "Принудительно запрещает автовоспроизведение видео при его открытии.";
"NoContentWarning" = "Пропускать предупреждения";
"NoContentWarningDesc" = "Пропускает предупреждения, всплывающие перед воспроизведением некоторого контента.";
"ClassicQuality" = "Классический выбор качества";
"ClassicQualityDesc" = "Возвращает классическое меню выбора качества в меню плеера.";
"ExtraSpeedOptions" = "Больше скоростей воспроизведения";
"ExtraSpeedOptionsDesc" = "Добавляет больше опций скорости воспроизведения в выпадающее меню плеера.";
"DontSnap2Chapter" = "Не перематывать эпизоды";
"DontSnap2ChapterDesc" = "Отключает жест перемотки к следующему эпизоду двойным нажатием.";
"RedProgressBar" = "Красный прогресс-бар";
@@ -61,6 +65,8 @@
"NoHintsDesc" = "Скрывает подсказки от авторов видео, появляющиеся в правом верхнем углу.";
"NoFreeZoom" = "Отключить жесты для зума";
"NoFreeZoomDesc" = "Отключает жесты приближения для нового зума.";
"AutoFullscreen" = "Открывать в полноэкранном режиме";
"AutoFullscreenDesc" = "Автоматически воспроизводит ролики в полноэкранном режиме.";
"ExitFullscreen" = "Автовыход из полноэкранного режима";
"ExitFullscreenDesc" = "Выходит из полноэкранного режима по окончанию воспроизведения.";
"NoDoubleTap2Seek" = "Отключить перемотку двойным тапом";
@@ -123,6 +129,18 @@
"RemovePlayNextDesc" = "Убирает опцию «Добавить в начало очереди» из меню видео.";
"NoContinueWatching" = "Отключить «Продолжить просмотр»";
"NoContinueWatchingDesc" = "Удаляет блок «Продолжить просмотр» содержащий недосмотренные видео с Главной страницы.";
"NoSearchHistory" = "Скрыть историю поиска";
"NoSearchHistoryDesc" = "Визуально скрывает историю поиска и подсказок. Данная опция не отменяет трекинг вашей истории поиска.";
"NoRelatedWatchNexts" = "Скрыть все видео под плеером";
"NoRelatedWatchNextsDesc" = "Скрывает все видео под плеером, оставляя только информацию о видео и раздел комментариев.";
"StickSortComments" = "Закрепить панель комментариев";
"StickSortCommentsDesc" = "Закрепляет панель сортировки комментариев, чтобы она не терялись при прокрутке.";
"HideSortComments" = "Скрыть панель комментариев";
"HideSortCommentsDesc" = "Скрывает панель сортировки комментариев.";
"PlaylistOldMinibar" = "Отображать старую панель плейлистов";
"PlaylistOldMinibarDesc" = "Заменяет новую, плавающую панель плейлистов, на старую.";
"DisableRTL" = "Запретить формат «справа налево»";
"DisableRTLDesc" = "Принудительно отображает текст в формате слева направо для языков, изначально отображающихся в формате справа налево.";
"Startup" = "Начальная страница";
"Home" = "Главная";
@@ -137,7 +155,12 @@
"About" = "О твике";
"Credits" = "Авторы";
"Developer" = "Разработчик твика";
"ChineseSimplified" = "Китайская (упрощенная) локализация";
"ChineseTraditional" = "Китайская (традиционная) локализация";
"French" = "Французская локализация";
"Spanish" = "Испанская локализация";
"Advanced" = "Расширенный режим";
"AdvancedModeReminder" = "Хотите ли вы активировать расширенный режим настроек YTLite?\n\nДанный режим добавляет более 50 опций для тонкой настройки YouTube. Вы всегда сможете включить/отключить расширенный режим перейдя в Настройки → %@ → %@ → %@.";
"ResetSettings" = "Сбросить настройки твика";
"ResetMessage" = "Данное действие сбросит настройки YTLite к значениям по умолчанию и закроет YouTube.\n\nУверены, что хотите продолжить?";
"Yes" = "Да";
@@ -11,6 +11,8 @@
"RemoveNotificationsDesc" = "从导航栏中隐藏通知按钮。";
"RemoveSearch" = "隐藏搜索按钮";
"RemoveSearchDesc" = "从导航栏中隐藏搜索按钮。";
"RemoveVoiceSearch" = "隐藏语音搜索按钮";
"RemoveVoiceSearchDesc" = "从导航栏中隐藏语音搜索按钮。";
"StickyNavbar" = "固定导航栏";
"StickyNavbarDesc" = "固定导航栏,使其在向下滚动时保持可见。";
"NoSubbar" = "隐藏子栏";
@@ -45,12 +47,16 @@
"Player" = "播放器";
"Miniplayer" = "启用迷你播放器";
"MiniplayerDesc" = "启用迷你播放器来播放最初不是为其设计的视频,例如针对儿童的视频。";
"PortraitFullscreen" = "竖屏全屏模式";
"PortraitFullscreenDesc" = "启用竖屏全屏模式支持。";
"DisableAutoplay" = "禁用自动播放视频";
"DisableAutoplayDesc" = "打开后防止视频自动播放。";
"NoContentWarning" = "跳过内容警告";
"NoContentWarningDesc" = "跳过敏感内容警告消息。";
"ClassicQuality" = "经典视频质量";
"ClassicQualityDesc" = "加回经典的视频质量选择菜单。";
"ExtraSpeedOptions" = "扩展速度选项";
"ExtraSpeedOptionsDesc" = "在播放器菜单中添加更多视频播放速度的选项。";
"DontSnap2Chapter" = "禁用双击跳转";
"DontSnap2ChapterDesc" = "禁用通过双击手势跳到下一集。";
"RedProgressBar" = "红色进度条";
@@ -59,6 +65,8 @@
"NoHintsDesc" = "禁用播放期间出现在右上角的作者提示。";
"NoFreeZoom" = "禁用自由缩放手势";
"NoFreeZoomDesc" = "禁用新的自由缩放手势。";
"AutoFullscreen" = "全屏模式";
"AutoFullscreenDesc" = "自动以全屏模式播放视频。";
"ExitFullscreen" = "完成后退出全屏模式";
"ExitFullscreenDesc" = "在视频播放结束时退出全屏模式。";
"NoDoubleTap2Seek" = "禁用双击搜索";
@@ -67,8 +75,8 @@
"Tabbar" = "选项卡栏";
"RemoveLabels" = "移除标签";
"RemoveLabelsDesc" = "删除选项卡标签。";
"ReExplore" = "短视频选项卡替换为“探索”选项卡";
"ReExploreDesc" = "显示“探索”选项卡,而不是旧版 本中的“短视频”选项卡。";
"ReExplore" = "短视频替换为“探索”";
"ReExploreDesc" = "在旧版本 YouTube 中将“短视频”选项卡替换为“探索”。";
"HideShortsTab" = "隐藏短视频";
"HideShortsTabDesc" = "从选项卡栏中隐藏短视频。";
"HideSubscriptionsTab" = "隐藏订阅内容";
@@ -111,10 +119,28 @@
"HideShortsThanksDesc" = "从短视频播放器中隐藏捐赠按钮。";
"HideShortsChannelName" = "隐藏发布者名称";
"HideShortsChannelNameDesc" = "从短视频播放器中隐藏发布者名称和订阅按钮。";
"HideShortsDescription" = "隐藏说明";
"HideShortsDescriptionDesc" = "在频道名称下隐藏短视频描述。";
"HideShortsAudioTrack" = "隐藏音频音轨";
"HideShortsAudioTrackDesc" = "短视频描述下隐藏音频音轨。";
"HideShortsDescription" = "隐藏文案";
"HideShortsDescriptionDesc" = "隐藏短视频下方的视频文案。";
"HideShortsAudioTrack" = "隐藏音轨";
"HideShortsAudioTrackDesc" = "隐藏短视频文案下方的音轨。";
"Other" = "其他";
"RemovePlayNext" = "删除“播放队列中的下一个”";
"RemovePlayNextDesc" = "从菜单中删除“播放队列中的下一个”选项。";
"NoContinueWatching" = "删除“继续观看”";
"NoContinueWatchingDesc" = "从首页中删除包含未完成视频的“继续观看”部分。";
"NoSearchHistory" = "隐藏搜索历史记录";
"NoSearchHistoryDesc" = "直观地隐藏搜索历史记录和建议。注意:搜索历史记录仍然可以在其他YouTube客户端中访问。";
"NoRelatedWatchNexts" = "隐藏播放器下的所有视频";
"NoRelatedWatchNextsDesc" = "隐藏播放器下方的所有视频,仅保留视频信息和评论部分。";
"StickSortComments" = "固定评论排序";
"StickSortCommentsDesc" = "固定评论顶部排序功能按钮(热门、时间),滚动时不会消失。";
"HideSortComments" = "隐藏评论排序";
"HideSortCommentsDesc" = "隐藏评论排序功能,使它永远不会出现。";
"PlaylistOldMinibar" = "旧播放列表";
"PlaylistOldMinibarDesc" = "将新的浮动播放列表面板替换为旧的浮动播放列表面板。";
"DisableRTL" = "禁用 RTL 格式";
"DisableRTLDesc" = "对于最初以从右到左 (RTL) 显示的语言,强制以从左到右 (LTR) 格式显示文本。";
"Startup" = "启动页";
"Home" = "首页";
@@ -129,7 +155,12 @@
"About" = "关于";
"Credits" = "信息";
"Developer" = "YTLite开发者";
"ChineseSimplified" = "中文(简体)本地化";
"ChineseTraditional" = "中文(繁体)本地化";
"French" = "法语本地化";
"Spanish" = "西班牙语本地化";
"Advanced" = "高级模式";
"AdvancedModeReminder" = "想为YTLite激活高级模式吗?\n\n此模式提供了50多个额外的选项来自定义和优化您的YouTube体验。\n可以稍后从设置中启用/禁用它 → %@ → %@ → %@。";
"ResetSettings" = "重置YTLite设置";
"ResetMessage" = "此选项会将YTLite设置重置为默认值并关闭YouTube。\n\n确定要继续吗?";
"Yes" = "是";
@@ -0,0 +1,167 @@
"General" = "一般功能";
"RemoveAds" = "移除廣告";
"RemoveAdsDesc" = "移除應用程式內的廣告";
"BackgroundPlayback" = "背景播放";
"BackgroundPlaybackDesc" = "啟用背景播放";
"Navbar" = "上方導覽列";
"RemoveCast" = "隱藏投放按鈕";
"RemoveCastDesc" = "從導覽列隱藏投放按鈕";
"RemoveNotifications" = "隱藏通知按鈕";
"RemoveNotificationsDesc" = "從導覽列隱藏通知按鈕";
"RemoveSearch" = "隱藏搜尋按鈕";
"RemoveSearchDesc" = "從導覽列隱藏搜尋按鈕";
"RemoveVoiceSearch" = "隱藏語音搜尋按鈕";
"RemoveVoiceSearchDesc" = "從導覽列隱藏語音搜尋按鈕";
"StickyNavbar" = "固定導覽列";
"StickyNavbarDesc" = "向下滑動時保持可見狀態";
"NoSubbar" = "隱藏子導覽列";
"NoSubbarDesc" = "隱藏導覽列下的子導覽列(全部、讓你耳目一新的影片、直播中...等)";
"NoYTLogo" = "移除YouTube圖示";
"NoYTLogoDesc" = "移除在左上方導覽列的YouTube圖示";
"Overlay" = "播放介面";
"HideAutoplay" = "隱藏自動播放開關";
"HideAutoplayDesc" = "隱藏播放器中的自動播放開關";
"HideSubs" = "隱藏字幕按鈕";
"HideSubsDesc" = "隱藏播放器中的字幕按鈕";
"NoHUDMsgs" = "隱藏HUD訊息";
"NoHUDMsgsDesc" = "隱藏播放器中的所有功能。例如:開啟/關閉 CC、開啟循環播放...等";
"HidePrevNext" = "隱藏上一部和下一部按鈕";
"HidePrevNextDesc" = "隱藏播放器中上一部和下一部影片按鈕";
"ReplacePrevNext" = "替換快轉和倒轉按鈕";
"ReplacePrevNextDesc" = "將播放器中的上一部和下一部影片按鈕替換為快轉和倒轉按鈕";
"NoDarkBg" = "移除深色背景";
"NoDarkBgDesc" = "移除播放器中的深色背景";
"NoEndScreenCards" = "隱藏片尾懸停影片";
"NoEndScreenCardsDesc" = "隱藏當影片結束時的懸停影片(縮圖)";
"NoFullscreenActions" = "停用全螢幕操作";
"NoFullscreenActionsDesc" = "在全螢幕模式下停用操作面板";
"NoRelatedVids" = "沒有相關影片";
"NoRelatedVidsDesc" = "移除全螢幕模式向上滑動時所出現的相關影片";
"NoPromotionCards" = "隱藏付費推廣";
"NoPromotionCardsDesc" = "在付費推廣的影片中隱藏「付費推廣」";
"NoWatermarks" = "隱藏浮水印";
"NoWatermarksDesc" = "在播放器中隱藏頻道浮水印";
"Player" = "播放器";
"Miniplayer" = "啟用迷你播放器";
"MiniplayerDesc" = "對於原本不支援迷你播放器的影片(例如針對兒童的影片),啟用迷你播放器";
"PortraitFullscreen" = "直向全螢幕模式";
"PortraitFullscreenDesc" = "啟用直向全螢幕模式";
"DisableAutoplay" = "停用自動播放";
"DisableAutoplayDesc" = "在打開應用程式後防止自動播放影片";
"NoContentWarning" = "略過內容警告";
"NoContentWarningDesc" = "略過敏感內容警告訊息";
"ClassicQuality" = "舊版本影片畫質";
"ClassicQualityDesc" = "恢復舊版本選擇影片畫質的方式";
"ExtraSpeedOptions" = "額外的播放速度選項";
"ExtraSpeedOptionsDesc" = "在播放速度選單中添加更多選項";
"DontSnap2Chapter" = "停用跳轉到章節";
"DontSnap2ChapterDesc" = "停用點兩下手勢跳轉到下一集";
"RedProgressBar" = "紅色進度條";
"RedProgressBarDesc" = "恢復紅色的進度條";
"NoHints" = "停用提示";
"NoHintsDesc" = "在播放過程中出現在右上角的作者提示";
"NoFreeZoom" = "停用自由縮放手勢";
"NoFreeZoomDesc" = "停用新的自由缩放手势";
"AutoFullscreen" = "全螢幕模式";
"AutoFullscreenDesc" = "自動以全螢幕模式播放影片";
"ExitFullscreen" = "結束時退出全螢幕模式";
"ExitFullscreenDesc" = "影片播放結束時退出全螢幕模式";
"NoDoubleTap2Seek" = "停用點兩下快轉功能";
"NoDoubleTap2SeekDesc" = "停用點兩下手勢進行快轉";
"Tabbar" = "下方標籤欄";
"RemoveLabels" = "移除標籤文字";
"RemoveLabelsDesc" = "移除標籤文字";
"ReExplore" = "將Shorts替換為探索";
"ReExploreDesc" = "在舊版YouTube上顯示「探索」而非「Shorts」";
"HideShortsTab" = "隱藏Shorts";
"HideShortsTabDesc" = "從標籤欄中隱藏Shorts標籤";
"HideSubscriptionsTab" = "隱藏訂閱內容";
"HideSubscriptionsTabDesc" = "從標籤欄中隱藏訂閱內容";
"HideUploadButton" = "隱藏+";
"HideUploadButtonDesc" = "從標籤欄中隱藏+標籤";
"HideLibraryTab" = "隱藏媒體庫";
"HideLibraryTabDesc" = "從標籤欄中隱藏媒體庫標籤";
"Shorts" = "Shorts";
"HideShorts" = "隱藏Shorts影片";
"HideShortsDesc" = "從首頁、推薦...等,隱藏Shorts影片(不適用於觀看紀錄)";
"ShortsProgress" = "啟用時間進度條";
"ShortsProgressDesc" = "在Shorts底部顯示進度條";
"ResumeShorts" = "不要從Shorts開始";
"ResumeShortsDesc" = "防止重新開啟應用程式時從Shorts開始播放,如果在觀看Shorts時關閉,就會發生這種情況";
"HideShortsLogo" = "隱藏Shorts圖示";
"HideShortsLogoDesc" = "左上角Shorts圖示";
"HideShortsSearch" = "隱藏搜尋按鈕";
"HideShortsSearchDesc" = "從Shorts中隱藏搜尋按鈕";
"HideShortsCamera" = "隱藏相機按鈕";
"HideShortsCameraDesc" = "從Shorts中隱藏相機按鈕";
"HideShortsMore" = "隱藏更多 (⋮) 按鈕";
"HideShortsMoreDesc" = "從Shorts中隱藏更多 (⋮) 按鈕,也可以透過長按螢幕來完成";
"HideShortsSubscriptions" = "隱藏訂閱按鈕";
"HideShortsSubscriptionsDesc" = "隱藏當Shorts暫停時顯示的訂閱按鈕";
"HideShortsLike" = "隱藏喜歡按鈕";
"HideShortsLikeDesc" = "從Shorts中隱藏喜歡按鈕";
"HideShortsDislike" = "隱藏不喜歡按鈕";
"HideShortsDislikeDesc" = "從Shorts中隱藏不喜歡按鈕";
"HideShortsComments" = "隱藏評論按鈕";
"HideShortsCommentsDesc" = "從Shorts中隱藏評論按鈕";
"HideShortsRemix" = "隱藏Remix按鈕";
"HideShortsRemixDesc" = "從Shorts中隱藏Remix按鈕";
"HideShortsShare" = "隱藏分享按鈕";
"HideShortsShareDesc" = "從Shorts中隱藏分享按鈕";
"HideShortsAvatars" = "隱藏頻道頭像";
"HideShortsAvatarsDesc" = "隱藏右下角的頻道圖片";
"HideShortsThanks" = "隱藏超級感謝按鈕";
"HideShortsThanksDesc" = "從Shorts中隱藏超級感謝 (贊助) 按鈕";
"HideShortsChannelName" = "隱藏頻道名稱";
"HideShortsChannelNameDesc" = "從Shorts中隱藏頻道名稱和訂閱按鈕";
"HideShortsDescription" = "隱藏描述";
"HideShortsDescriptionDesc" = "隱藏頻道名稱下的Shorts描述";
"HideShortsAudioTrack" = "隱藏原始音效";
"HideShortsAudioTrackDesc" = "隱藏Shorts描述下的原始音效";
"Other" = "其它";
"RemovePlayNext" = "移除「播放下一個」";
"RemovePlayNextDesc" = "從選單移除「播放下一個」";
"NoContinueWatching" = "移除「繼續觀看」";
"NoContinueWatchingDesc" = "從首頁中移除包含未完成影片的「繼續觀看」部分";
"NoSearchHistory" = "隱藏搜尋記錄";
"NoSearchHistoryDesc" = "視覺上隱藏搜尋歷史紀錄和建議。注意:您的搜尋紀錄仍然可在其它 YouTube 客戶端中存取";
"NoRelatedWatchNexts" = "隱藏播放器下的所有影片";
"NoRelatedWatchNextsDesc" = "只留下影片資訊和留言區域";
"StickSortComments" = "固定留言排序";
"StickSortCommentsDesc" = "將留言排序(熱門、最新)功能固定,這樣在滾動時就不會消失";
"HideSortComments" = "隱藏留言排序";
"HideSortCommentsDesc" = "隱藏留言排序(熱門、最新)功能,將永不顯示";
"PlaylistOldMinibar" = "舊版播放清單";
"PlaylistOldMinibarDesc" = "將新版的浮動播放清單面板替換為舊版";
"DisableRTL" = "停用RTL格式";
"DisableRTLDesc" = "強制將初始顯示從右到左(RTL)格式的語言,改為從左到右(LTR)顯示";
"Startup" = "啟動頁面";
"Home" = "首頁";
"Explore" = "探索";
"ShortsTab" = "Shorts";
"Subscriptions" = "訂閱內容";
"Library" = "媒體庫";
"Warning" = "警告";
"TabIsHidden" = "無法將隱藏的標籤選為啟動頁面";
"Version" = "版本";
"About" = "關於";
"Credits" = "貢獻";
"Developer" = "YTLite開發者";
"ChineseSimplified" = "簡體中文在地化";
"ChineseTraditional" = "繁體中文在地化";
"French" = "法文在地化";
"Spanish" = "西班牙文在地化";
"Advanced" = "進階模式";
"AdvancedModeReminder" = "您是否想啟用YTLite的進階模式?\n\n這個模式提供了50多個額外的選項,可以自訂義和優化您的YouTube使用體驗。您稍後可以在「設定」中 → %@ → %@ → %@ 啟用或停用它。";
"ResetSettings" = "重置YTLite設定";
"ResetMessage" = "這個選項會將YTLite重置為預設值,並關閉Youtube\n\n您確定要繼續嗎?";
"Yes" = "是";
"No" = "否";
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.