Compare commits
89
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bc286ef74f | ||
|
|
fc6132d261 | ||
|
|
f560be0b66 | ||
|
|
2d7f2b7d2a | ||
|
|
df01ad4d48 | ||
|
|
5a76a9336b | ||
|
|
9a1c8c218d | ||
|
|
a1cf67d8fe | ||
|
|
c5fc18b755 | ||
|
|
42e3977f36 | ||
|
|
e50c308ec4 | ||
|
|
c7e24c47e2 | ||
|
|
9aa506b264 | ||
|
|
bd4fd45cf3 | ||
|
|
6b0b2133bd | ||
|
|
db1f9b6bc6 | ||
|
|
0c62646af2 | ||
|
|
96517062e1 | ||
|
|
a2441bfbc5 | ||
|
|
e15f540ab0 | ||
|
|
a3877ab91c | ||
|
|
d3c7347d31 | ||
|
|
6f4e2a3623 | ||
|
|
6981ae9a18 | ||
|
|
70e17b3ce0 | ||
|
|
46163626ed | ||
|
|
6b3ddf2915 | ||
|
|
eefb554631 | ||
|
|
12a3290350 | ||
|
|
b5b1e44d46 | ||
|
|
4362a638fe | ||
|
|
b4094e0c07 | ||
|
|
bcac2c1931 | ||
|
|
e69232105d | ||
|
|
bcfe9d2891 | ||
|
|
3f05614fa7 | ||
|
|
b1554de1a3 | ||
|
|
27e434e2e1 | ||
|
|
ac8983c935 | ||
|
|
11ea8025b8 | ||
|
|
38af87bd72 | ||
|
|
5973744c44 | ||
|
|
44ee4323ca | ||
|
|
cee7a1a8ca | ||
|
|
815b1822ed | ||
|
|
d29fafdc63 | ||
|
|
7b8577c339 | ||
|
|
05b525f40b | ||
|
|
70af294bc9 | ||
|
|
d2e11dad1d | ||
|
|
edd9ca4436 | ||
|
|
5cd00bf13c | ||
|
|
3569959058 | ||
|
|
7c12f67c03 | ||
|
|
5a7189fb95 | ||
|
|
18ce6e99c5 | ||
|
|
aa46f2da01 | ||
|
|
c7539edbe2 | ||
|
|
235cbea5eb | ||
|
|
272163344f | ||
|
|
8ed1dab75f | ||
|
|
c32f00cca2 | ||
|
|
a88833a5e4 | ||
|
|
631068acfa | ||
|
|
5b3580a663 | ||
|
|
8295fa4842 | ||
|
|
2f4ea4130c | ||
|
|
e2b31644af | ||
|
|
f4a9aeabb0 | ||
|
|
398660cd98 | ||
|
|
3f6f62a3e4 | ||
|
|
0db40410d8 | ||
|
|
82c7b1367b | ||
|
|
c04ff7e6d5 | ||
|
|
0a0f655db5 | ||
|
|
22b45d0627 | ||
|
|
221cc0ee40 | ||
|
|
54ca35f15e | ||
|
|
26f6d77584 | ||
|
|
9964988bbb | ||
|
|
6526b9f470 | ||
|
|
9eb8ca1950 | ||
|
|
cd6a32a778 | ||
|
|
a85b50d1ff | ||
|
|
ad0c100c41 | ||
|
|
28b0e66841 | ||
|
|
0b9ac11842 | ||
|
|
7b4af1d938 | ||
|
|
ab09ac27f1 |
@@ -23,7 +23,7 @@ on:
|
||||
type: string
|
||||
create_release:
|
||||
description: "Create a draft release"
|
||||
default: false
|
||||
default: true
|
||||
required: false
|
||||
type: boolean
|
||||
|
||||
@@ -55,8 +55,18 @@ jobs:
|
||||
ref: master
|
||||
path: theos
|
||||
submodules: recursive
|
||||
|
||||
|
||||
- name: Caching
|
||||
id: SDK
|
||||
uses: actions/cache@v3.0.11
|
||||
env:
|
||||
cache-name: iOS-15.5-SDK
|
||||
with:
|
||||
path: theos/sdks/
|
||||
key: ${{ env.cache-name }}
|
||||
|
||||
- name: Download iOS 15.5 SDK
|
||||
if: steps.SDK.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
svn checkout -q https://github.com/chrisharper22/sdks/trunk/iPhoneOS15.5.sdk
|
||||
mv *.sdk $THEOS/sdks
|
||||
@@ -95,11 +105,13 @@ jobs:
|
||||
- name: Fix compiling && Build Package
|
||||
id: build_package
|
||||
run: |
|
||||
(echo 'THEOS_IGNORE_PARALLEL_BUILDING_NOTICE = yes' >> ~/.theosrc)
|
||||
cd ${{ github.workspace }}/main
|
||||
(cd ${{ github.workspace }}/main/Tweaks/YouPiP && sed -i '' "14s/$/ AVFoundation UIKit/" Makefile)
|
||||
(cd ${{ github.workspace }}/main/Tweaks/YTABConfig && sed -i '' "12s#.*#YTABConfig_FRAMEWORKS = UIKit#g" Makefile)
|
||||
make package FINALPACKAGE=1
|
||||
(mv "packages/$(ls -t packages | head -n1)" "packages/uYouPlus_${{ env.YOUTUBE_VERSION }}_${{ env.UYOU_VERSION }}.ipa")
|
||||
echo "::set-output name=package::$(ls -t packages | head -n1)"
|
||||
echo "package=$(ls -t packages | head -n1)" >>$GITHUB_OUTPUT
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
UYOU_VERSION: ${{ inputs.uyou_version }}
|
||||
@@ -111,33 +123,20 @@ jobs:
|
||||
UYOU_VERSION: ${{ inputs.uyou_version }}
|
||||
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
|
||||
with:
|
||||
name: uYouPlus_${{ env.YOUTUBE_VERSION }}_${{ env.UYOU_VERSION }}
|
||||
name: uYouPlus_${{ env.YOUTUBE_VERSION }}_${{ env.UYOU_VERSION }}
|
||||
path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }}
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Create Release
|
||||
if: ${{ inputs.create_release }}
|
||||
id: create_release
|
||||
uses: actions/create-release@v1
|
||||
uses: softprops/action-gh-release@v0.1.14
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
UYOU_VERSION: ${{ inputs.uyou_version }}
|
||||
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
|
||||
DRAFT: ${{ inputs.create_release }}
|
||||
with:
|
||||
tag_name: v${{ env.YOUTUBE_VERSION }}-${{ env.UYOU_VERSION }}-(${{ github.run_number }})
|
||||
release_name: v${{ env.YOUTUBE_VERSION }}-${{ env.UYOU_VERSION }}-(${{ github.run_number }})
|
||||
draft: true
|
||||
prerelease: false
|
||||
|
||||
- name: Upload Release Asset
|
||||
if: ${{ inputs.create_release }}
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
UYOU_VERSION: ${{ inputs.uyou_version }}
|
||||
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }}
|
||||
asset_name: uYouPlus_${{ env.YOUTUBE_VERSION }}_${{ env.UYOU_VERSION }}.ipa
|
||||
asset_content_type: application/vnd.debian.binary-package
|
||||
name: v${{ env.YOUTUBE_VERSION }}-${{ env.UYOU_VERSION }}-(${{ github.run_number }})
|
||||
files: ./main/packages/*.ipa
|
||||
draft: ${{ env.DRAFT }}
|
||||
|
||||
+4
-4
@@ -26,11 +26,11 @@
|
||||
path = Tweaks/PSHeader
|
||||
url = https://github.com/PoomSmart/PSHeader.git
|
||||
branch = master
|
||||
[submodule "Tweaks/YTSpeed"]
|
||||
path = Tweaks/YTSpeed
|
||||
url = https://github.com/qnblackcat/YTSpeed.git
|
||||
branch = main
|
||||
[submodule "Extensions"]
|
||||
path = Extensions
|
||||
url = https://github.com/CokePokes/YoutubeExtensions.git
|
||||
branch = main
|
||||
[submodule "Tweaks/YTABConfig"]
|
||||
path = Tweaks/YTABConfig
|
||||
url = https://github.com/PoomSmart/YTABConfig.git
|
||||
branch = main
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#import "Tweaks/YouTubeHeader/YTAppDelegate.h"
|
||||
#import "Tweaks/YouTubeHeader/YTPlayerViewController.h"
|
||||
|
||||
#define LOC(x) [tweakBundle localizedStringForKey:x value:nil table:nil]
|
||||
@@ -5,6 +6,7 @@
|
||||
#define YT_NAME @"YouTube"
|
||||
#define UNSUPPORTED_DEVICES @[@"iPhone14,3", @"iPhone14,6", @"iPhone14,8"] // DontEatMycontent
|
||||
#define THRESHOLD 1.99 // DontEatMycontent
|
||||
#define DEFAULT_RATE 2.0f // YTSpeed
|
||||
|
||||
// IAmYouTube
|
||||
@interface SSOConfiguration : NSObject
|
||||
@@ -61,6 +63,30 @@ void center();
|
||||
- (id)activeVideoPlayerOverlay;
|
||||
@end
|
||||
|
||||
// YTSpeed
|
||||
@interface YTVarispeedSwitchControllerOption : NSObject
|
||||
- (id)initWithTitle:(id)title rate:(float)rate;
|
||||
@end
|
||||
|
||||
@interface MLHAMQueuePlayer : NSObject
|
||||
@property id playerEventCenter;
|
||||
@property id delegate;
|
||||
- (void)setRate:(float)rate;
|
||||
- (void)internalSetRate;
|
||||
@end
|
||||
|
||||
@interface MLPlayerStickySettings : NSObject
|
||||
- (void)setRate:(float)rate;
|
||||
@end
|
||||
|
||||
@interface MLPlayerEventCenter : NSObject
|
||||
- (void)broadcastRateChange:(float)rate;
|
||||
@end
|
||||
|
||||
@interface HAMPlayerInternal : NSObject
|
||||
- (void)setRate:(float)rate;
|
||||
@end
|
||||
|
||||
// iOS16 fix
|
||||
@interface OBPrivacyLinkButton : UIButton
|
||||
- (instancetype)initWithCaption:(NSString *)caption
|
||||
@@ -76,6 +102,12 @@ void center();
|
||||
- (id)activeVideo;
|
||||
@end
|
||||
|
||||
// uYou theme fix
|
||||
@interface YTAppDelegate ()
|
||||
@property(nonatomic, strong) id downloadsVC;
|
||||
@end
|
||||
|
||||
|
||||
// BigYTMiniPlayer
|
||||
@interface YTMainAppVideoPlayerOverlayView : UIView
|
||||
- (UIViewController *)_viewControllerForAncestor;
|
||||
@@ -87,8 +119,13 @@ void center();
|
||||
// YTAutoFullScreen
|
||||
@interface YTPlayerViewController (YTAFS)
|
||||
- (void)autoFullscreen;
|
||||
- (id)activeVideoPlayerOverlay; // DontEatMycontent
|
||||
- (id)playerView; // DontEatMycontent
|
||||
// DontEatMycontent
|
||||
- (id)activeVideoPlayerOverlay;
|
||||
- (id)playerView;
|
||||
// YTSpeed
|
||||
@property id activeVideo;
|
||||
@property float playbackRate;
|
||||
- (void)singleVideo:(id)video playbackRateDidChange:(float)rate;
|
||||
@end
|
||||
|
||||
// OLED Darkmode
|
||||
|
||||
@@ -1,24 +1,25 @@
|
||||
TARGET = iphone:clang:latest:13.0
|
||||
TARGET = iphone:clang:15.5:14.0
|
||||
uYouPlus_USE_FLEX = 0
|
||||
uYouPlus_USE_FISHHOOK = 0
|
||||
ARCHS = arm64
|
||||
MODULES = jailed
|
||||
FINALPACKAGE = 1
|
||||
CODESIGN_IPA = 0
|
||||
PACKAGE_VERSION = 17.42.7_2.1
|
||||
|
||||
TWEAK_NAME = uYouPlus
|
||||
DISPLAY_NAME = YouTube
|
||||
BUNDLE_ID = com.google.ios.youtube
|
||||
|
||||
uYouPlus_INJECT_DYLIBS = Tweaks/uYou/Library/MobileSubstrate/DynamicLibraries/uYou.dylib .theos/obj/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib .theos/obj/YTUHD.dylib .theos/obj/YouPiP.dylib .theos/obj/YouTubeDislikesReturn.dylib .theos/obj/YoutubeSpeed.dylib
|
||||
uYouPlus_INJECT_DYLIBS = Tweaks/uYou/Library/MobileSubstrate/DynamicLibraries/uYou.dylib .theos/obj/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib .theos/obj/YTUHD.dylib .theos/obj/YouPiP.dylib .theos/obj/YouTubeDislikesReturn.dylib .theos/obj/YTABConfig.dylib
|
||||
uYouPlus_FILES = uYouPlus.xm Settings.xm
|
||||
uYouPlus_IPA = ./tmp/Payload/YouTube.app
|
||||
uYouPlus_FRAMEWORKS = UIKit Security
|
||||
uYouPlus_CFLAGS = -fobjc-arc
|
||||
uYouPlus_CFLAGS = -fobjc-arc -DTWEAK_VERSION=$(PACKAGE_VERSION)
|
||||
|
||||
include $(THEOS)/makefiles/common.mk
|
||||
include $(THEOS_MAKE_PATH)/tweak.mk
|
||||
SUBPROJECTS += Tweaks/Alderis Tweaks/iSponsorBlock Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTSpeed
|
||||
SUBPROJECTS += Tweaks/Alderis Tweaks/iSponsorBlock Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTABConfig
|
||||
include $(THEOS_MAKE_PATH)/aggregate.mk
|
||||
|
||||
before-package::
|
||||
@@ -27,6 +28,7 @@ before-package::
|
||||
@cp -R Tweaks/YouPiP/layout/Library/Application\ Support/YouPiP.bundle Resources/
|
||||
@cp -R Tweaks/YTUHD/layout/Library/Application\ Support/YTUHD.bundle Resources/
|
||||
@cp -R Tweaks/Return-YouTube-Dislikes/layout/Library/Application\ Support/RYD.bundle Resources/
|
||||
@cp -R Tweaks/YTABConfig/layout/Library/Application\ Support/YTABC.bundle Resources/
|
||||
@cp -R Tweaks/iSponsorBlock/layout/Library/Application\ Support/iSponsorBlock.bundle Resources/
|
||||
@cp -R Tweaks/uYou/Library/Application\ Support/uYouBundle.bundle Resources/
|
||||
@cp -R lang/uYouPlus.bundle Resources/
|
||||
|
||||
@@ -66,7 +66,11 @@
|
||||
|
||||
12. **YTMiniplayerEnabler**: enable Miniplayer for all YouTube videos.
|
||||
|
||||
13. **DontEatMyContent**: Prevent the notch/Dynamic Island from munching on 2:1 video content in YouTube.
|
||||
13. **DontEatMyContent**: prevent the notch/Dynamic Island from munching on 2:1 video content in YouTube.
|
||||
|
||||
14. **YTShortsProgress**: always enable progress bar and scrubbing in YouTube Shorts (iPhone only).
|
||||
|
||||
15. **YTABConfig**: allow user to control over YouTube A/B testing flags.
|
||||
|
||||
</details>
|
||||
|
||||
@@ -78,42 +82,43 @@
|
||||
|
||||
# Download
|
||||
|
||||
- **uYouPlus** (or you can call it uYou+) requires iOS or iPadOS 13.0 or later. The latest version of **uYouPlus** can be found in the [Release tab](https://github.com/qnblackcat/uYouPlus/releases).
|
||||
- **uYouPlus** (or you can call it uYou+) requires iOS or iPadOS 14.0 or later. The latest version of **uYouPlus** can be found in the [Release tab](https://github.com/qnblackcat/uYouPlus/releases/latest).
|
||||
|
||||
- For AltStore user:
|
||||
|
||||
- My official AltStore repo: https://qnblackcat.github.io/AltStore/
|
||||
|
||||
- [Open in AltStore (v17.39.4-2.1)](https://tinyurl.com/t9hnhmhu) - It will take a while to install because AltStore needs to download the IPA.
|
||||
- [Open in AltStore (v17.42.7-2.1)](https://tinyurl.com/4j5nyb6z) - It will take a while to install because AltStore needs to download the IPA.
|
||||
|
||||
- Version info: _(last update: Oct 04)_
|
||||
- Version info: _(last update: Oct 28)_
|
||||
|
||||
<details>
|
||||
<summary>Expand</summary>
|
||||
|
||||
| **Tweaks/App** | **Developer** | **Version** | **Open source** |
|
||||
| - | - | :-: | :-: |
|
||||
| **YouTube** | Google Inc | 17.39.4 | ✖︎ |
|
||||
| **YouTube** | Google Inc | 17.42.7 | ✖︎ |
|
||||
| [uYou](https://github.com/MiRO92/uYou-for-YouTube) | [MiRO92](https://twitter.com/miro92) | 2.1 | ✖︎ |
|
||||
| [Open in YouTube](https://github.com/CokePokes/YoutubeExtensions) | [CokePokes](https://github.com/CokePokes) | 1.2 | ✖︎ |
|
||||
| **iSponsorBlock** | [Galactic-Dev](https://github.com/Galactic-Dev) | 1.0-15 | [✔︎](https://github.com/Galactic-Dev/iSponsorBlock) |
|
||||
| **BigYTMiniPlayer** | [Galactic-Dev](https://github.com/Galactic-Dev) | 1.0-1 | [✔︎](https://github.com/Galactic-Dev/BigYTMiniPlayer) |
|
||||
| **YTNoHoverCards** | [level3tjg](https://twitter.com/level3tjg) | 0.0.3 | [✔︎](https://github.com/level3tjg/YTNoHoverCards) |
|
||||
| **YTMiniplayerEnabler** | [level3tjg](https://twitter.com/level3tjg) | 0.0.2 | [✔︎](https://github.com/level3tjg/YTMiniplayerEnabler) |
|
||||
| **DontEatMyContent** | [therealFoxster](https://github.com/therealFoxster) | 1.0.0 | [✔︎](https://github.com/therealFoxster/DontEatMyContent) |
|
||||
| **DontEatMyContent** | [therealFoxster](https://github.com/therealFoxster) | 1.0.2 | [✔︎](https://github.com/therealFoxster/DontEatMyContent) |
|
||||
| **YTSpeed** | [Lyvendia](https://github.com/Lyvendia) | 1.0.1 | [✔︎](https://github.com/Lyvendia/YTSpeed) |
|
||||
| **YTCastConfirm** | [JamieBerghmans](https://github.com/JamieBerghmans) | 1.0.0 | [✔︎](https://github.com/JamieBerghmans/YTCastConfirm) |
|
||||
| **Alderis Color Picker** | [HASHBANG Productions](https://github.com/hbang) | 1.2| [✔︎](https://github.com/hbang/Alderis) |
|
||||
| **YTUHD** | [PoomSmart](https://twitter.com/poomsmart) | 1.3.0 | [✔︎](https://github.com/PoomSmart/YTUHD) |
|
||||
| **YouPiP** | [PoomSmart](https://twitter.com/poomsmart) | 1.7.10 | [✔︎](https://github.com/PoomSmart/YouPiP) |
|
||||
| **YTUHD** | [PoomSmart](https://twitter.com/poomsmart) | 1.3.4 | [✔︎](https://github.com/PoomSmart/YTUHD) |
|
||||
| **YouPiP** | [PoomSmart](https://twitter.com/poomsmart) | 1.7.14 | [✔︎](https://github.com/PoomSmart/YouPiP) |
|
||||
| **IAmYouTube** | [PoomSmart](https://twitter.com/poomsmart) | 1.2.0 | [✔︎](https://github.com/PoomSmart/IAmYouTube) |
|
||||
| **YTABConfig** | [PoomSmart](https://twitter.com/poomsmart) | 1.4.2 | [✔︎](https://github.com/PoomSmart/YTABConfig) |
|
||||
| **YTReExplore** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.2 | [✔︎](https://github.com/PoomSmart/YTReExplore) |
|
||||
| **NoYTPremium** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.4 | [✔︎](https://github.com/PoomSmart/NoYTPremium) |
|
||||
| **YTNoPaidPromo** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.0 | [✔︎](https://github.com/PoomSmart/YTNoPaidPromo) |
|
||||
| **YTAutoFullScreen** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.3 | [✔︎](https://github.com/PoomSmart/YTAutoFullScreen) |
|
||||
| **YTShortsProgress** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.2 | [✔︎](https://github.com/PoomSmart/YTShortsProgress) |
|
||||
| **YouRememberCaption** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.0 | [✔︎](https://poomsmart.github.io/repo/depictions/youremembercaption.html) |
|
||||
| **YTClassicVideoQuality** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.1 | [✔︎](https://github.com/PoomSmart/YTClassicVideoQuality) |
|
||||
| **Return YouTube Dislike** | [PoomSmart](https://twitter.com/poomsmart) | 1.7.0 | [✔︎](https://github.com/PoomSmart/Return-YouTube-Dislikes) |
|
||||
| **Return YouTube Dislike** | [PoomSmart](https://twitter.com/poomsmart) | 1.7.3 | [✔︎](https://github.com/PoomSmart/Return-YouTube-Dislikes) |
|
||||
| **YTNoCheckLocalNetwork** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.2 | [✔︎](https://poomsmart.github.io/repo/depictions/ytnochecklocalnetwork.html) |
|
||||
|
||||
</details>
|
||||
|
||||
+27
-5
@@ -1,6 +1,8 @@
|
||||
#import "Tweaks/YouTubeHeader/YTSettingsViewController.h"
|
||||
#import "Tweaks/YouTubeHeader/YTSearchableSettingsViewController.h"
|
||||
#import "Tweaks/YouTubeHeader/YTSettingsSectionItem.h"
|
||||
#import "Tweaks/YouTubeHeader/YTSettingsSectionItemManager.h"
|
||||
#import "Tweaks/YouTubeHeader/YTUIUtils.h"
|
||||
#import "Header.h"
|
||||
|
||||
@interface YTSettingsSectionItemManager (YouPiP)
|
||||
@@ -39,19 +41,39 @@ extern BOOL dontEatMyContent();
|
||||
}
|
||||
%end
|
||||
|
||||
%hook YTSettingsViewController
|
||||
|
||||
- (void)loadWithModel:(id)model fromView:(UIView *)view {
|
||||
%orig;
|
||||
if ([[self valueForKey:@"_detailsCategoryID"] integerValue] == uYouPlusSection)
|
||||
MSHookIvar<BOOL>(self, "_shouldShowSearchBar") = YES;
|
||||
}
|
||||
|
||||
- (void)setSectionControllers {
|
||||
%orig;
|
||||
if (MSHookIvar<BOOL>(self, "_shouldShowSearchBar")) {
|
||||
YTSettingsSectionController *settingsSectionController = [self settingsSectionControllers][[self valueForKey:@"_detailsCategoryID"]];
|
||||
YTSearchableSettingsViewController *searchableVC = [self valueForKey:@"_searchableSettingsViewController"];
|
||||
if (settingsSectionController)
|
||||
[searchableVC storeCollectionViewSections:@[settingsSectionController]];
|
||||
}
|
||||
}
|
||||
|
||||
%end
|
||||
|
||||
%hook YTSettingsSectionItemManager
|
||||
%new
|
||||
- (void)updateuYouPlusSectionWithEntry:(id)entry {
|
||||
YTSettingsViewController *delegate = [self valueForKey:@"_dataDelegate"];
|
||||
NSBundle *tweakBundle = uYouPlusBundle();
|
||||
|
||||
YTSettingsSectionItem *killApp = [%c(YTSettingsSectionItem) // https://github.com/PoomSmart/YTABConfig/blob/b74d7f28151c407cffc21cce12908c49e9e65999/Tweak.x#L76
|
||||
itemWithTitle:LOC(@"KILL_APP")
|
||||
titleDescription:LOC(@"KILL_APP_DESC")
|
||||
YTSettingsSectionItem *version = [%c(YTSettingsSectionItem)
|
||||
itemWithTitle:[NSString stringWithFormat:LOC(@"VERSION"), @(OS_STRINGIFY(TWEAK_VERSION))]
|
||||
titleDescription:LOC(@"VERSION_CHECK")
|
||||
accessibilityIdentifier:nil
|
||||
detailTextBlock:nil
|
||||
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||
exit(0);
|
||||
return [%c(YTUIUtils) openURL:[NSURL URLWithString:@"https://github.com/qnblackcat/uYouPlus/releases/latest"]];
|
||||
}];
|
||||
|
||||
YTSettingsSectionItem *dontEatMyContent = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"DONT_EAT_MY_CONTENT") titleDescription:LOC(@"DONT_EAT_MY_CONTENT_DESC")];
|
||||
@@ -198,7 +220,7 @@ extern BOOL dontEatMyContent();
|
||||
return YES;
|
||||
};
|
||||
|
||||
NSMutableArray <YTSettingsSectionItem *> *sectionItems = [NSMutableArray arrayWithArray:@[killApp, autoFull, castConfirm, ytMiniPlayer, fixGoogleSignIn, hideAutoplaySwitch, hideCC, hideHUD, hidePaidPromotionCard, hidePreviousAndNextButton, hideHoverCard, bigYTMiniPlayer, oledDarkMode, oledKeyBoard, dontEatMyContent, replacePreviousAndNextButton, reExplore]];
|
||||
NSMutableArray <YTSettingsSectionItem *> *sectionItems = [NSMutableArray arrayWithArray:@[version, autoFull, castConfirm, ytMiniPlayer, fixGoogleSignIn, hideAutoplaySwitch, hideCC, hideHUD, hidePaidPromotionCard, hidePreviousAndNextButton, hideHoverCard, bigYTMiniPlayer, oledDarkMode, oledKeyBoard, dontEatMyContent, replacePreviousAndNextButton, reExplore]];
|
||||
[delegate setSectionItems:sectionItems forCategory:uYouPlusSection title:@"uYouPlus" titleDescription:nil headerHidden:NO];
|
||||
}
|
||||
|
||||
|
||||
+1
-1
Submodule Tweaks/Alderis updated: c5b3ed5761...27746498fe
Submodule Tweaks/Return-YouTube-Dislikes updated: 3098524af3...85ad2058c2
Submodule
+1
Submodule Tweaks/YTABConfig added at 940f9c9b2f
Submodule Tweaks/YTSpeed deleted from 3fec2dfcf0
+1
-1
Submodule Tweaks/YTUHD updated: c0c1e472dc...96af5b5a38
+1
-1
Submodule Tweaks/YouPiP updated: 661af465d7...d4b7bdcc11
+1
-1
Submodule Tweaks/YouTubeHeader updated: d6bc59b8f9...f5d675f595
@@ -1,4 +1,6 @@
|
||||
// Settings
|
||||
"VERSION" = "إصدار uYouPlus: %@";
|
||||
"VERSION_CHECK" = "المس هنا للبحث عن التحديثات!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "منع النوتش/الجزيرة التفاعلية على مقاطع 2:1 (أداة DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "منع النوتش/الجزيرة التفاعلية من قص المقاطع التي تكون نسبة العرض إلى الارتفاع فيها تساوي 2:1. يتطلب إعادة تشغيل التطبيق.";
|
||||
@@ -9,9 +11,6 @@
|
||||
"FIX_GOOGLE_SIGNIN" = "إصلاح تسجيل الدخول بحساب جوجل (لمستخدمي TrollStore فقط)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "هذا الخيار لا يعمل إلا إذا كان التطبيق مثبت بواسطة TrollStore: فعل هذا الخيار لتتمكن من تسجيل الدخول بحساب جوجل. يتطلب إعادة تشغيل التطبيق.";
|
||||
|
||||
"KILL_APP" = "إغلاق تطبيق يوتيوب";
|
||||
"KILL_APP_DESC" = "المس هنا لإغلاق تطبيق يوتيوب!";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "إخفاء زرّي السابق والتالي";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "إخفاء زرّي المقطع السابق والمقطع التالي من أزرار التحكم على الفيديو.";
|
||||
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
// Settings
|
||||
"VERSION" = "uYouPlus's version: %@";
|
||||
"VERSION_CHECK" = "Tap to check for update!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "Zabránit zářezu/ostrovu na videoobsahu 2:1 (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "Zabraňte tomu, aby zářez/Dynamic Island žvýkal video obsah 2:1 na YouTube. Je vyžadován restart aplikace.";
|
||||
|
||||
@@ -8,9 +11,6 @@
|
||||
"FIX_GOOGLE_SIGNIN" = "Opravit přihlášení přes Google (pouze pro uživatele TrollStore)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "Tuto možnost zapněte pouze v případě, že se nemůžete přihlásit pomocí svého účtu Google a aplikace byla nainstalována prostřednictvím TrollStore. Pokud se můžete normálně přihlásit, ponechte ji deaktivovanou. Je vyžadován restart aplikace.";
|
||||
|
||||
"KILL_APP" = "Zavřít YouTube";
|
||||
"KILL_APP_DESC" = "Klepnutím sem zavřete YouTube!";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Skrýt tlačítka předchozí a následující";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Skryje tlačítka předchozí a následující v překrytí ovládání videa.";
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
// Settings
|
||||
"VERSION" = "uYouPlus-Version: %@";
|
||||
"VERSION_CHECK" = "Tippen, um nach Updates zu suchen!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "Kerbe/Insel bei 2:1-Videoinhalten berücksichtigen (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT" = "Kerbe/dynamische Insel bei 2:1-Videoinhalten berücksichtigen (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "Verhindert, dass die Notch/Dynamic Island 2:1-Videoinhalte überdeckt. App-Neustart erforderlich!";
|
||||
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Vor- und Zurücktasten ersetzen";
|
||||
@@ -9,9 +11,6 @@
|
||||
"FIX_GOOGLE_SIGNIN" = "Google-Anmeldung reparieren (nur für TrollStore-Benutzer!)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "Aktiviere diese Option nur, wenn Sie sich nicht mit Ihrem Google-Account anmelden können und die App über TrollStore installiert wurde. Wenn Sie sich normal anmelden können, halte diese Option deaktiviert! App-Neustart erforderlich!";
|
||||
|
||||
"KILL_APP" = "YouTube crashen";
|
||||
"KILL_APP_DESC" = "Tippe hier, um YouTube zum Abstürzen zu bringen!";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Vor- und Zurücktasten ausblenden";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Vor- und Zurücktasten vom Videoplayer ausblenden.";
|
||||
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
// Settings
|
||||
"VERSION" = "uYouPlus's version: %@";
|
||||
"VERSION_CHECK" = "Tap to check for update!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "Αποτροπή Notch/Island σε περιεχόμενο βίντεο 2:1 (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "Αποτρέψτε το notch/Dynamic Island από το να μασουλάει περιεχόμενο βίντεο 2:1 στο YouTube. Απαιτείται επανεκκίνηση της εφαρμογής.";
|
||||
|
||||
@@ -8,9 +11,6 @@
|
||||
"FIX_GOOGLE_SIGNIN" = "Διόρθωση σύνδεσης Google (μόνο για χρήστες του TrollStore)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "Ενεργοποιήστε αυτήν την επιλογή μόνο όταν δεν μπορείτε να συνδεθείτε με τον λογαριασμό σας Google και η εφαρμογή έχει εγκατασταθεί μέσω του TrollStore. Εάν μπορείτε να συνδεθείτε κανονικά, διατηρήστε την απενεργοποιημένη. Απαιτείται επανεκκίνηση της εφαρμογής.";
|
||||
|
||||
"KILL_APP" = "Κλείσιμο YouTube";
|
||||
"KILL_APP_DESC" = "Πατήστε εδώ για να κλείσετε το YouTube!";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Κρύψτε το προηγούμενο και το επόμενο κουμπί";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Κρύψτε το προηγούμενο και το επόμενο κουμπί κατά την αναπαραγωγή βίντεο.";
|
||||
|
||||
|
||||
@@ -1,30 +1,29 @@
|
||||
// Settings
|
||||
"VERSION" = "uYouPlus's version: %@";
|
||||
"VERSION_CHECK" = "Tap to check for updates!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "Prevent Notch/Island on 2:1 Video Content (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "Prevent the notch/Dynamic Island from munching on 2:1 video content in YouTube. App restart is required.";
|
||||
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Replace Previous and Next Button";
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Replace Previous and Next Button with Fast forward and Rewind button. App restart is required.";
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Replace Previous and Next button";
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Replace the Previous and Next button with the Fast forward and Rewind button. App restart is required.";
|
||||
|
||||
"FIX_GOOGLE_SIGNIN" = "Fix Google Sign in (for TrollStore user only)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "Turn on this option only when you can't sign in with your Google account and the app was installed via TrollStore. If you can log in normally, keep it disabled. App restart is required.";
|
||||
|
||||
"KILL_APP" = "Close YouTube";
|
||||
"KILL_APP_DESC" = "Tap here to close YouTube!";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "Only turn on this option when you can't sign in with your Google account and the app was installed via TrollStore. If you can log in normally, keep it disabled. App restart is required.";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Hide Previous and Next button";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Hide Previous and Next button in video controls overlay.";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Hide the Previous and Next button in video controls overlay.";
|
||||
|
||||
"YT_MINIPLAYER" = "Enable the Miniplayer for all YouTube videos";
|
||||
"YT_MINIPLAYER" = "Enable the mini player for all YouTube videos";
|
||||
"YT_MINIPLAYER_DESC" = "Kid videos for example.";
|
||||
|
||||
"CAST_CONFIRM" = "Confirm alert before casting (YTCastConfirm)";
|
||||
"CAST_CONFIRM_DESC" = "Show a confirm alert before casting to prevent accidentally hijacking TV.";
|
||||
|
||||
"HIDE_HOVER_CARD" = "Hide End screens hover cards (YTNoHoverCards)";
|
||||
"HIDE_HOVER_CARD_DESC" = "Hide creator End screens (thumbnails) at the end of videos.";
|
||||
"HIDE_HOVER_CARD_DESC" = "Hide the creator End screens (thumbnails) at the end of videos.";
|
||||
|
||||
"NEW_MINIPLAYER_STYLE" = "New miniplayer bar style (BigYTMiniPlayer)";
|
||||
"NEW_MINIPLAYER_STYLE" = "New mini player bar style (BigYTMiniPlayer)";
|
||||
"NEW_MINIPLAYER_STYLE_DESC" = "App restart is required.";
|
||||
|
||||
"YT_RE_EXPLORE" = "Replace Shorts tab with Explore tab (YTReExplore)";
|
||||
@@ -43,10 +42,10 @@
|
||||
"HIDE_HUD_MESSAGES_DESC" = "Example: CC is turned on/off, Video loop is on,...";
|
||||
|
||||
"OLED_DARKMODE" = "OLED Dark mode (Experimental)";
|
||||
"OLED_DARKMODE_DESC" = "Might not working correctly in some cases. App restart is required after you enable/disable this option.";
|
||||
"OLED_DARKMODE_DESC" = "Might not work correctly in some cases. App restart is required after you enable/disable this option.";
|
||||
|
||||
"OLED_KEYBOARD" = "OLED Keyboard (Experimental)";
|
||||
"OLED_KEYBOARD_DESC" = "Might not working correctly in some cases. App restart is required.";
|
||||
"OLED_KEYBOARD_DESC" = "Might not work correctly in some cases. App restart is required.";
|
||||
|
||||
"HIDE_PAID_PROMOTION_CARDS" = "Hide Paid Promotion banner";
|
||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Hide the 'Includes Paid Promotions' banner in some videos.";
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
// Settings
|
||||
"VERSION" = "uYouPlus's version: %@";
|
||||
"VERSION_CHECK" = "Tap to check for update!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "Evitar Notch/Island en contenido de video 2:1 (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "Evite que la muesca/Dynamic Island se trague contenido de video 2:1 en YouTube. Es necesario reiniciar la aplicación.";
|
||||
|
||||
@@ -8,9 +11,6 @@
|
||||
"FIX_GOOGLE_SIGNIN" = "Reparar el inicio de sesión de Google (solo para usuarios de TrollStore)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "Active esta opción solo cuando no pueda iniciar sesión con su cuenta de Google y la aplicación se instaló a través de TrollStore. Si puede iniciar sesión normalmente, manténgala desactivada. Es necesario reiniciar la aplicación.";
|
||||
|
||||
"KILL_APP" = "Cerrar YouTube";
|
||||
"KILL_APP_DESC" = "Toca aquí para cerrar YouTube!";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Ocultar el botón de Anterior y Siguiente";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Ocultar el botón de Anterior y Siguiente en los botones superpuestos.";
|
||||
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
// Settings
|
||||
"VERSION" = "uYouPlus's version: %@";
|
||||
"VERSION_CHECK" = "Tap to check for update!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "Empêcher l'encoche/Dynamic Island de grignoter le contenu vidéo 2:1 (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "Empêche l'encoche/Dynamic Island de grignoter du contenu vidéo 2:1 dans YouTube. Le redémarrage de l'application est nécessaire.";
|
||||
|
||||
@@ -8,9 +11,6 @@
|
||||
"FIX_GOOGLE_SIGNIN" = "Réparer l'identification Google (pour les utilisateurs de TrollStore uniquement)" ;
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "Activez cette option uniquement si vous ne pouvez pas vous connecter avec votre compte Google et que l'application a été installée via TrollStore. Si vous pouvez vous connecter normalement, laissez-la désactivée. Le redémarrage de l'application est nécessaire.";
|
||||
|
||||
"KILL_APP" = "Fermer YouTube";
|
||||
"KILL_APP_DESC" = "Appuyez ici pour fermer YouTube !";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Masquer les boutons Précédent et Suivant";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Masquer les boutons Précédent et Suivant dans la superposition des contrôles vidéo";
|
||||
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
// Settings
|
||||
"VERSION" = "uYouPlus's version: %@";
|
||||
"VERSION_CHECK" = "Tap to check for update!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "מנע חריץ/אי בתוכן וידאו 2:1 (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "מנע מהחריץ/האי הדינמי ללעוס תוכן וידאו 2:1 ב-YouTube. נדרשת הפעלה מחדש של האפליקציה.";
|
||||
|
||||
@@ -8,9 +11,6 @@
|
||||
"FIX_GOOGLE_SIGNIN" = "תקן כניסה של Google (עבור משתמש TrollStore בלבד)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "הפעל אפשרות זו רק כאשר אינך יכול להיכנס עם חשבון Google שלך והאפליקציה הותקנה דרך TrollStore. אם אתה יכול להתחבר כרגיל, השאר אותה מושבתת. נדרשת הפעלה מחדש של האפליקציה.";
|
||||
|
||||
"KILL_APP" = "סגור את YouTube";
|
||||
"KILL_APP_DESC" = "הקש כאן כדי לסגור את YouTube!";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "הסתר את הקודם והבא";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "הסתר את כפתורי הקודם והבא בתצוגת השליטה בסרטון.";
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
// Settings
|
||||
"VERSION" = "uYouPlus's version: %@";
|
||||
"VERSION_CHECK" = "Tap to check for update!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "Notch/Island megelőzése 2:1 arányú videótartalomnál (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "Akadályozza meg, hogy a Notch/Dynamic Island 2:1 arányú videótartalmat csámcsogjon a YouTube-on. Az alkalmazás újraindítása szükséges.";
|
||||
@@ -9,9 +11,6 @@
|
||||
"FIX_GOOGLE_SIGNIN" = "A Google bejelentkezés javítása (csak a TrollStore-felhasználók számára)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "Csak akkor kapcsolja be ezt az opciót, ha nem tud bejelentkezni Google-fiókjával, és az alkalmazást a TrollStore-on keresztül telepítették. Ha normálisan be tud jelentkezni, tartsa letiltva. Az alkalmazás újraindítása szükséges.";
|
||||
|
||||
"KILL_APP" = "YouTube bezárása";
|
||||
"KILL_APP_DESC" = "Kattints ide a YouTube bezárásához!";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Előző és Következő gomb elrejtése";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Az Előző és a Következő gomb elrejtése a videóvezérlők fedvényén.";
|
||||
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
// Settings
|
||||
"VERSION" = "uYouPlus's version: %@";
|
||||
"VERSION_CHECK" = "Tap to check for update!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "Previeni la Tacca/Isola sui Contenuti Video 2:1 (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "Previene alla Tacca/Isola di nascondere parte dei Contenuti Video 2:1 in YouTube. È richiesto un riavvio dell'app.";
|
||||
|
||||
@@ -8,8 +11,6 @@
|
||||
"FIX_GOOGLE_SIGNIN" = "Ripara Google Sign in (solo per utenti TrollStore)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "Attiva questa opzione solo quando non puoi accedere al tuo account Google e l'app è stata installata attraverso TrollStore. Se puoi accedere normalmente, tienila disabilitata. È richiesto un riavvio dell'app.";
|
||||
|
||||
"KILL_APP" = "Chiudi YouTube";
|
||||
"KILL_APP_DESC" = "Premi qui per chiudere YouTube!";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Nascondi i bottoni Precedente e Successivo";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Nasconde i bottoni Precedente e Successivo dai controlli in sovrimpressione al video.";
|
||||
|
||||
@@ -1,19 +1,21 @@
|
||||
// Settings
|
||||
"VERSION" = "uYouPlusのバージョン: %@";
|
||||
"VERSION_CHECK" = "ここをタップしてアップデートを確認!";
|
||||
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON" = "前後の動画のボタンを置き換える";
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "前後の動画を再生するボタンを早送り、巻き戻しボタンに置き換えます。アプリの再起動が必要です。";
|
||||
"DONT_EAT_MY_CONTENT" = "2:1の動画とノッチ/Dynamic Islandの最適化 (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "2:1比率の動画とノッチ/Dynamic Islandが干渉することを防ぎます。アプリの再起動が必要です。";
|
||||
|
||||
"FIX_GOOGLE_SIGNIN" = "Googleのサインイン (TrollStoreユーザーのみ)";
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON" = "前後の動画を再生するボタンを置き換える";
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "次の動画と前の動画を再生するボタンをそれぞれ早送りと巻き戻しボタンに置き換えます。アプリの再起動が必要です。";
|
||||
|
||||
"FIX_GOOGLE_SIGNIN" = "Googleのサインインを修正 (TrollStoreユーザーのみ)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "アプリがTrollStoreでインストールされた場合のみ機能します。このオプションを有効にしてGoogleアカウントでサインインできるようにします。アプリの再起動が必要です。";
|
||||
|
||||
"KILL_APP" = "YouTubeを閉じる";
|
||||
"KILL_APP_DESC" = "ここをタップしてYouTubeを終了できます!";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "前後の動画のボタンを非表示";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "動画コントロールのオーバーレイで前後の動画のボタンを非表示にします。";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "前後の動画を再生するボタンを非表示";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "動画コントロールのオーバーレイで次の動画と前の動画を再生するボタンを非表示にします。";
|
||||
|
||||
"YT_MINIPLAYER" = "すべての動画でミニプレーヤーを有効にする";
|
||||
"YT_MINIPLAYER_DESC" = "例: 子ども向けの動画";
|
||||
"YT_MINIPLAYER_DESC" = "例:子ども向けの動画";
|
||||
|
||||
"CAST_CONFIRM" = "キャストする前に確認をする (YTCastConfirm)";
|
||||
"CAST_CONFIRM_DESC" = "誤ってテレビにキャストしないように、確認の警告を表示します。";
|
||||
@@ -37,13 +39,13 @@
|
||||
"AUTO_FULLSCREEN_DESC" = "動画を自動でフルスクリーンにします。";
|
||||
|
||||
"HIDE_HUD_MESSAGES" = "HUDのメッセージを非表示";
|
||||
"HIDE_HUD_MESSAGES_DESC" = "例: 字幕がオン/オフになりました、ループ再生はオンになっています、等";
|
||||
"HIDE_HUD_MESSAGES_DESC" = "例:字幕がオン/オフになりました、ループ再生はオンになっています、等";
|
||||
|
||||
"OLED_DARKMODE" = "有機ELダークモード (実験的機能)";
|
||||
"OLED_DARKMODE_DESC" = "正しく動作しない可能性があります。この設定を変更した場合、アプリの再起動が必要です。";
|
||||
"OLED_DARKMODE_DESC" = "正常に動作しない可能性があります。この設定を変更した場合、アプリの再起動が必要です。";
|
||||
|
||||
"OLED_KEYBOARD" = "有機ELキーボード (実験的機能)";
|
||||
"OLED_KEYBOARD_DESC" = "正しく動作しない可能性があります。この設定を変更した場合、アプリの再起動が必要です。";
|
||||
"OLED_KEYBOARD_DESC" = "正常に動作しない可能性があります。この設定を変更した場合、アプリの再起動が必要です。";
|
||||
|
||||
"HIDE_PAID_PROMOTION_CARDS" = "プロモーションバナーを非表示";
|
||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "一部の動画で表示される「プロモーションを含みます」のバナーを非表示にします。";
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
// Settings
|
||||
"VERSION" = "uYouPlus 버전: %@";
|
||||
"VERSION_CHECK" = "업데이트하려면 탭하세요!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "노치/아일랜드 영역이 2:1 비율 비디오를 가리지 않게 함 (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "노치/다이내믹 아일랜드 영역이 유튜브의 2:1 비율 영상 일부를 가리는 것을 막아줍니다. 앱을 다시 시작해야 합니다.";
|
||||
|
||||
@@ -8,9 +11,6 @@
|
||||
"FIX_GOOGLE_SIGNIN" = "구글 로그인 문제 수정 (TrollStore 사용자만 해당)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "TrollStore를 통해 설치된 앱에서만 동작합니다: 구글 계정으로 로그인하려면 이 옵션을 켜 주세요. 앱을 다시 시작해야 합니다.";
|
||||
|
||||
"KILL_APP" = "YouTube 닫기";
|
||||
"KILL_APP_DESC" = "YouTube 앱을 닫으려면 여기를 탭하세요!";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "이전, 다음 재생 버튼 숨기기";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "비디오 재생 오버레이에서 이전 재생, 다음 재생 버튼을 숨깁니다.";
|
||||
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
// Settings
|
||||
"VERSION" = "uYouPlus's version: %@";
|
||||
"VERSION_CHECK" = "Tap to check for update!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "Voorkom Notch/Eiland Bij 2:1 Video's (DontEatMyContent)";#
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "Voorkomt dat de video zich achter de Notch/het Dynamische Eiland bevind bij 2:1 video's. Je moet de app opnieuw opstarten om dit te activeren.";
|
||||
|
||||
@@ -8,9 +11,6 @@
|
||||
"FIX_GOOGLE_SIGNIN" = "Fix Inloggen met Google (Alleen voor TrollStore gebruikers)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "Zet dit aan wanneer je niet kan inloggen met je Google account en je de app hebt geïnstalleerd met Trollstore. Als je in kan loggen laat dit dan met rust. Om dit te activeren moet je de app opnieuw opstarten.";
|
||||
|
||||
"KILL_APP" = "Sluit YouTube";
|
||||
"KILL_APP_DESC" = "Klik om YouTube te sluiten!";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Verberg vorige en volgende knoppen";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Verberg de vorige en volgende knop in de video speler.";
|
||||
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
// Settings
|
||||
"VERSION" = "uYouPlus's version: %@";
|
||||
"VERSION_CHECK" = "Tap to check for update!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "Zapobiega przeszkadzaniu Notcha/Island na filmach o proporcjach 2:1 (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "Zapobiega notcha/Dynamic Island przed jedzeniem filmów o proporcjach 2:1 na YouTubie. Restart aplikacji jest wymagany.";
|
||||
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Zamień przyciski Poprzedni i Następny";
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Zamienia przyciski Poprzedni i Następny z przyciskami Przewiń w przód i tył. Restart aplikacji jest wymagany.";
|
||||
|
||||
"FIX_GOOGLE_SIGNIN" = "Napraw logowanie się z Google (tylko dla użytkowników TrollStore)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "Włącz tą opcję tylko wtedy, kiedy nie możesz zalogować się swoim kontem Google, a aplikacja została zainstalowana przez TrollStore. Jeżeli da się zalogować normalnie, zostaw to wyłączone. Restart aplikacji jest wymagany.";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Ukryj przyciski Poprzedni i Następny";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Ukryj przyciski Poprzedni i Następny w okładce sterowania filmu.";
|
||||
|
||||
"YT_MINIPLAYER" = "Włącz miniodtwarzach dla wszystkich filmów";
|
||||
"YT_MINIPLAYER_DESC" = "Np. filmów dla dzieci.";
|
||||
|
||||
"CAST_CONFIRM" = "Alert przed przesyłaniem (YTCastConfirm)";
|
||||
"CAST_CONFIRM_DESC" = "Pokaż alert przed przesyłaniem aby nie łączyć się przez przypadek z telewizorem.";
|
||||
|
||||
"HIDE_HOVER_CARD" = "Ukryj ekrany końcowe (YTNoHoverCards)";
|
||||
"HIDE_HOVER_CARD_DESC" = "Ukryj ekrany końcowe (miniaturki) na końcu filmów.";
|
||||
|
||||
"NEW_MINIPLAYER_STYLE" = "Nowy styl miniodtwarzacza (BigYTMiniPlayer)";
|
||||
"NEW_MINIPLAYER_STYLE_DESC" = "Restart aplikacji jest wymagany.";
|
||||
|
||||
"YT_RE_EXPLORE" = "Zamień kartę Shorts na kartę Odkrywaj (YTReExplore)";
|
||||
"YT_RE_EXPLORE_DESC" = "Restart aplikacji jest wymagany.";
|
||||
|
||||
"HIDE_SUBTITLES_BUTTON" = "Ukryj przycisk Napisy";
|
||||
"HIDE_SUBTITLES_BUTTON_DESC" = "Ukrywa przycisk Napisy w okładce odtwarzacza filmów.";
|
||||
|
||||
"HIDE_AUTOPLAY_SWITCH" = "Ukryj przycisk Autoodtwarzanie";
|
||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "Ukrywa przycisk Autoodtwarzanie w okładce odtwarzacza filmów.";
|
||||
|
||||
"AUTO_FULLSCREEN" = "Auto pełny ekran (YTAutoFullScreen)";
|
||||
"AUTO_FULLSCREEN_DESC" = "Automaczycznie otwórz filmy w pełnym ekranie.";
|
||||
|
||||
"HIDE_HUD_MESSAGES" = "Ukryj komunikaty HUD";
|
||||
"HIDE_HUD_MESSAGES_DESC" = "Np. Napisy są wył/wł, Odtwarzanie w pętli jest włączone, ...";
|
||||
|
||||
"OLED_DARKMODE" = "Tryb ciemny OLED (Eksperymentalny)";
|
||||
"OLED_DARKMODE_DESC" = "Może w niektórych przypadkach nie działać. Restart aplikacji jest wymagany.";
|
||||
|
||||
"OLED_KEYBOARD" = "Klawiatura OLED (Eksperymentalna)";
|
||||
"OLED_KEYBOARD_DESC" = "Może w niektórych przypadkach nie działać. Restart aplikacji jest wymagany.";
|
||||
|
||||
"HIDE_PAID_PROMOTION_CARDS" = "Ukryj baner płatnej promocji";
|
||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Ukrywa baner 'Zawiera płatną promocję' w niektórych filmach.";
|
||||
|
||||
// YTCastConfirm
|
||||
"CASTING" = "Przesyłania";
|
||||
"MSG_ARE_YOU_SURE" = "Czy na pewno chcesz przesyłać?";
|
||||
"MSG_YES" = "Tak";
|
||||
"MSG_CANCEL" = "Anuluj";
|
||||
@@ -1,4 +1,9 @@
|
||||
// Settings
|
||||
"VERSION" = "Versão do uYouPlus: %@";
|
||||
"VERSION_CHECK" = "Toque para verificar se há atualização!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "Evitar o notch/Island em conteúdo de vídeo 2:1 (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "Evita que o notch/Dynamic Island coma conteúdo de vídeo 2:1 no YouTube. A reinicialização do app é necessária.";
|
||||
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Substituir o botão Anterior e Próximo";
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Substitui o botão Anterior e Próximo pelo botão Avançar e Retroceder. A reinicialização do app é necessária.";
|
||||
@@ -6,9 +11,6 @@
|
||||
"FIX_GOOGLE_SIGNIN" = "Corrigir o login do Google (somente para usuários da TrollStore)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "Ative esta opção somente quando você não conseguir fazer login com sua conta do Google e o aplicativo foi instalado via TrollStore. Se você conseguir fazer login normalmente, mantenha-o desativado. A reinicialização do app é necessária.";
|
||||
|
||||
"KILL_APP" = "Fechar o YouTube";
|
||||
"KILL_APP_DESC" = "Toque aqui para fechar o YouTube!";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Ocultar botão Anterior e Próximo";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Oculta o botão Anterior e Próximo na sobreposição de controles de vídeo.";
|
||||
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
// Settings
|
||||
"VERSION" = "Versiune uYouPlus: %@";
|
||||
"VERSION_CHECK" = "Căutare actualizări";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "Previne apariția Notch/Island pe content video 2:1 (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "Previne tăierea conținutului video 2:1 de către Notch/Dynamic Island . Este necesară repornirea aplicației.";
|
||||
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Înlocuire butoane Înainte/Înapoi";
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Înlocuiește butoanele Înainte/Înapoi cu butoanele derulare Înainte/Înapoi. Este necesară repornirea aplicației.";
|
||||
|
||||
"FIX_GOOGLE_SIGNIN" = "Rezolvare problemă autentificare cont Google (doar pentru utilizatorii TrollStore)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "Activează această opțiune doar în cazul în care nu te poți autentifica în contul tău Google și apariția a fost instalată via TrollStore. Dacă te poți autentifica fără probleme, țineți setarea dezactivată. Este necesară repornirea aplicației.";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Ascunde butoanele Înainte/Înapoi";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Ascunde butoanele Înainte/Înapoi din controalele video.";
|
||||
|
||||
"YT_MINIPLAYER" = "Activare Miniplayer pentru toate videoclipurile YouTube";
|
||||
"YT_MINIPLAYER_DESC" = "De exemplu, videoclipurile destinate pentri copii";
|
||||
|
||||
"CAST_CONFIRM" = "Alertă de confirmare înainte de proiectare (YTCastConfirm)";
|
||||
"CAST_CONFIRM_DESC" = "Afișează o alertă de confirmare înainte de a proiecta, pentru a preveni deturnarea accidentală a TV-ului.";
|
||||
|
||||
"HIDE_HOVER_CARD" = "Ascunde ecranele de final (YTNoHoverCards)";
|
||||
"HIDE_HOVER_CARD_DESC" = "Ascunde ecranele de final de la sfârșitul videoclipurilor.";
|
||||
|
||||
"NEW_MINIPLAYER_STYLE" = "Stil nou bară Miniplayer (BigYTMiniPlayer)";
|
||||
"NEW_MINIPLAYER_STYLE_DESC" = "Este necesară repornirea aplicației.";
|
||||
|
||||
"YT_RE_EXPLORE" = "Înlocuire fila Shorts cu fila Explore (YTReExplore)";
|
||||
"YT_RE_EXPLORE_DESC" = "Este necesară repornirea aplicației.";
|
||||
|
||||
"HIDE_SUBTITLES_BUTTON" = "Ascunde butonul Subtitrări";
|
||||
"HIDE_SUBTITLES_BUTTON_DESC" = "Ascunde butonul Subtitrări din controalele video.";
|
||||
|
||||
"HIDE_AUTOPLAY_SWITCH" = "Ascunde comutatorul Redare automată";
|
||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "Ascunde comutatorul Redare automată din controalele video.";
|
||||
|
||||
"AUTO_FULLSCREEN" = "Auto Ecran Întreg (YTAutoFullScreen)";
|
||||
"AUTO_FULLSCREEN_DESC" = "Redare automată video pe ecran complet.";
|
||||
|
||||
"HIDE_HUD_MESSAGES" = "Ascundere Mesaje HUD";
|
||||
"HIDE_HUD_MESSAGES_DESC" = "Exemplu: Subtitrările sunt activate/dezactivate, Redarea în buclă este activată,...";
|
||||
|
||||
"OLED_DARKMODE" = "Mod Întunecat OLED (Experimental)";
|
||||
"OLED_DARKMODE_DESC" = "Este posibil să nu funcționeze corect în anumite cazuri. Este necesară repornirea aplicației după ce această opțiune este activată/dezactivată.";
|
||||
|
||||
"OLED_KEYBOARD" = "Tastatură OLED (Experimental)";
|
||||
"OLED_KEYBOARD_DESC" = "Este posibil să nu funcționeze corect în anumite cazuri. Este necesară repornirea aplicației.";
|
||||
|
||||
"HIDE_PAID_PROMOTION_CARDS" = "Ascunde banner-ul Promovare Plătită";
|
||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Ascunde banner-ul 'Include Promovare Plătită' în unele videoclipuri.";
|
||||
|
||||
// YTCastConfirm
|
||||
"CASTING" = "Proiectare";
|
||||
"MSG_ARE_YOU_SURE" = "Sunteți sigur că doriți să proiectați?";
|
||||
"MSG_YES" = "Da";
|
||||
"MSG_CANCEL" = "Anulare";
|
||||
@@ -1,4 +1,7 @@
|
||||
/* uYouPlusSettings */
|
||||
"VERSION" = "uYouPlus's version: %@";
|
||||
"VERSION_CHECK" = "Tap to check for update!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "Предотвратить выемку/остров на видеоконтенте 2:1 (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "Не позволяйте вырезу/Dynamic Island поглощать видеоконтент 2:1 на YouTube. Требуется перезапуск приложения.";
|
||||
|
||||
@@ -8,9 +11,6 @@
|
||||
"FIX_GOOGLE_SIGNIN" = "Исправить вход через Google (только для пользователя TrollStore)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "Включайте эту опцию, только если вы не можете войти в свою учетную запись Google и приложение было установлено через TrollStore. Если вы можете нормально войти в систему, оставьте ее отключенной. Требуется перезапуск приложения.";
|
||||
|
||||
"KILL_APP" = "Закрыть YouTube";
|
||||
"KILL_APP_DESC" = "Нажмите здесь, чтобы закрыть YouTube!";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Скрыть «Пред.» и «След.»";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Убирает кнопки переключения видео «Следующий» и «Предыдущий» с плеера.";
|
||||
|
||||
|
||||
@@ -1,43 +1,44 @@
|
||||
/* Read me:
|
||||
- How to translate uYouPlus (if your language already exists then feel free to check it and/or improve it):
|
||||
1. Fork uYouPlus repo
|
||||
1. Fork this uYouPlus repo
|
||||
2. Duplicate the template.lproj folder, and edit the duplicated folder's name to your <lang_code>.lproj id.
|
||||
For example: <ru.lproj> for Russia. For more details, visit: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
|
||||
3. Translate each line below after each =
|
||||
3. Translate each line below after each =
|
||||
4. Open a Pull Request
|
||||
|
||||
- You can also add your localization to YouPiP, YTUHD and Return YouTube Dislike. The process is the same:
|
||||
- You can also add your localization to YTABConfig, YouPiP, YTUHD, and Return YouTube Dislike. The process is the same:
|
||||
https://github.com/PoomSmart/YTABConfig/tree/main/layout/Library/Application%20Support/YTABC.bundle
|
||||
https://github.com/PoomSmart/YouPiP/tree/main/layout/Library/Application%20Support/YouPiP.bundle
|
||||
https://github.com/PoomSmart/YTUHD/tree/master/layout/Library/Application%20Support/YTUHD.bundle
|
||||
https://github.com/PoomSmart/Return-YouTube-Dislikes/tree/main/layout/Library/Application%20Support/RYD.bundle
|
||||
*/
|
||||
|
||||
// Settings
|
||||
"VERSION" = "uYouPlus's version: %@";
|
||||
"VERSION_CHECK" = "Tap to check for updates!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "Prevent Notch/Island on 2:1 Video Content (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "Prevent the notch/Dynamic Island from munching on 2:1 video content in YouTube. App restart is required.";
|
||||
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Replace Previous and Next Button";
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Replace Previous and Next Button with Fast forward and Rewind button. App restart is required.";
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Replace Previous and Next button";
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Replace the Previous and Next button with the Fast forward and Rewind button. App restart is required.";
|
||||
|
||||
"FIX_GOOGLE_SIGNIN" = "Fix Google Sign in (for TrollStore user only)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "Turn on this option only when you can't sign in with your Google account and the app was installed via TrollStore. If you can log in normally, keep it disabled. App restart is required.";
|
||||
|
||||
"KILL_APP" = "Close YouTube";
|
||||
"KILL_APP_DESC" = "Tap here to close YouTube!";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "Only turn on this option when you can't sign in with your Google account and the app was installed via TrollStore. If you can log in normally, keep it disabled. App restart is required.";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Hide Previous and Next button";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Hide Previous and Next button in video controls overlay.";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Hide the Previous and Next button in video controls overlay.";
|
||||
|
||||
"YT_MINIPLAYER" = "Enable the Miniplayer for all YouTube videos";
|
||||
"YT_MINIPLAYER" = "Enable the mini player for all YouTube videos";
|
||||
"YT_MINIPLAYER_DESC" = "Kid videos for example.";
|
||||
|
||||
"CAST_CONFIRM" = "Confirm alert before casting (YTCastConfirm)";
|
||||
"CAST_CONFIRM_DESC" = "Show a confirm alert before casting to prevent accidentally hijacking TV.";
|
||||
|
||||
"HIDE_HOVER_CARD" = "Hide End screens hover cards (YTNoHoverCards)";
|
||||
"HIDE_HOVER_CARD_DESC" = "Hide creator End screens (thumbnails) at the end of videos.";
|
||||
"HIDE_HOVER_CARD_DESC" = "Hide the creator End screens (thumbnails) at the end of videos.";
|
||||
|
||||
"NEW_MINIPLAYER_STYLE" = "New miniplayer bar style (BigYTMiniPlayer)";
|
||||
"NEW_MINIPLAYER_STYLE" = "New mini player bar style (BigYTMiniPlayer)";
|
||||
"NEW_MINIPLAYER_STYLE_DESC" = "App restart is required.";
|
||||
|
||||
"YT_RE_EXPLORE" = "Replace Shorts tab with Explore tab (YTReExplore)";
|
||||
@@ -56,10 +57,10 @@ https://github.com/PoomSmart/Return-YouTube-Dislikes/tree/main/layout/Library/Ap
|
||||
"HIDE_HUD_MESSAGES_DESC" = "Example: CC is turned on/off, Video loop is on,...";
|
||||
|
||||
"OLED_DARKMODE" = "OLED Dark mode (Experimental)";
|
||||
"OLED_DARKMODE_DESC" = "Might not working correctly in some cases. App restart is required after you enable/disable this option.";
|
||||
"OLED_DARKMODE_DESC" = "Might not work correctly in some cases. App restart is required after you enable/disable this option.";
|
||||
|
||||
"OLED_KEYBOARD" = "OLED Keyboard (Experimental)";
|
||||
"OLED_KEYBOARD_DESC" = "Might not working correctly in some cases. App restart is required.";
|
||||
"OLED_KEYBOARD_DESC" = "Might not work correctly in some cases. App restart is required.";
|
||||
|
||||
"HIDE_PAID_PROMOTION_CARDS" = "Hide Paid Promotion banner";
|
||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Hide the 'Includes Paid Promotions' banner in some videos.";
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
/* Read me:
|
||||
- How to translate uYouPlus (if your language already exists then feel free to check it and/or improve it):
|
||||
1. Fork uYouPlus repo
|
||||
2. Duplicate the template.lproj folder, and edit the duplicated folder's name to your <lang_code>.lproj id.
|
||||
For example: <ru.lproj> for Russia. For more details, visit: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
|
||||
3. Translate each line below after each =
|
||||
4. Open a Pull Request
|
||||
|
||||
- You can also add your localization to YTABConfig, YouPiP, YTUHD, Return YouTube Dislike. The process is the same:
|
||||
https://github.com/PoomSmart/YTABConfig/tree/main/layout/Library/Application%20Support/YTABC.bundle
|
||||
https://github.com/PoomSmart/YouPiP/tree/main/layout/Library/Application%20Support/YouPiP.bundle
|
||||
https://github.com/PoomSmart/YTUHD/tree/master/layout/Library/Application%20Support/YTUHD.bundle
|
||||
https://github.com/PoomSmart/Return-YouTube-Dislikes/tree/main/layout/Library/Application%20Support/RYD.bundle
|
||||
*/
|
||||
|
||||
// Settings
|
||||
"VERSION" = "uYouPlus'ın sürümü: %@";
|
||||
"VERSION_CHECK" = "Güncellemeyi kontrol etmek için dokunun!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "2:1 Video İçeriğinde Çentik/Ada Önleme (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "Çentik/Dinamik Ada'nın YouTube'daki 2:1 video içeriğini yemesini önleyin. Uygulamanın yeniden başlatılması gerekir.";
|
||||
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON" = "Önceki ve Sonraki Düğmelerini Değiştir";
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "Önceki ve Sonraki Düğmelerini Hızlı ileri ve Geri Sar düğmeleriyle değiştirin. Uygulamanın yeniden başlatılması gerekir.";
|
||||
|
||||
"FIX_GOOGLE_SIGNIN" = "Google Oturumu Açma'yı düzeltin (yalnızca TrollStore kullanıcıları için)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "Bu seçeneği yalnızca Google hesabınızla oturum açamadığınızda ve uygulama TrollStore aracılığıyla yüklendiyse açın. Normal olarak giriş yapabiliyorsanız, devre dışı bırakın. Uygulamanın yeniden başlatılması gerekir.";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Önceki ve Sonraki düğmelerini gizle";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Video kontrolleri katmanında Önceki ve Sonraki düğmelerini gizler.";
|
||||
|
||||
"YT_MINIPLAYER" = "Tüm YouTube videoları için Mini Oynatıcıyı etkinleştirin";
|
||||
"YT_MINIPLAYER_DESC" = "Örneğin çocuk videoları.";
|
||||
|
||||
"CAST_CONFIRM" = "Yayınlamadan önce uyarıyı onaylayın (YTCastConfirm)";
|
||||
"CAST_CONFIRM_DESC" = "TV'nin yanlışlıkla ele geçirilmesini önlemek için yayınlamadan önce bir onay uyarısı gösterir.";
|
||||
|
||||
"HIDE_HOVER_CARD" = "Bitiş ekranlarının üzerine gelen kartları gizle.(YTNoHoverCards)";
|
||||
"HIDE_HOVER_CARD_DESC" = "Videoların sonundaki içerik oluşturucu bitiş ekranlarını (küçük resimler) gizler.";
|
||||
|
||||
"NEW_MINIPLAYER_STYLE" = "Yeni mini oynatıcı bar stili. (BigYTMiniPlayer)";
|
||||
"NEW_MINIPLAYER_STYLE_DESC" = "Uygulamanın yeniden başlatılması gerekir.";
|
||||
|
||||
"YT_RE_EXPLORE" = "Shorts sekmesini Keşfet sekmesiyle değiştirin (YTReExplore)";
|
||||
"YT_RE_EXPLORE_DESC" = "Uygulamanın yeniden başlatılması gerekir.";
|
||||
|
||||
"HIDE_SUBTITLES_BUTTON" = "Altyazıları düğmesini gizle";
|
||||
"HIDE_SUBTITLES_BUTTON_DESC" = "Video kontrolleri katmanındaki Altyazılar düğmesini gizler.";
|
||||
|
||||
"HIDE_AUTOPLAY_SWITCH" = "Otomatik oynatma anahtarını gizle";
|
||||
"HIDE_AUTOPLAY_SWITCH_DESC" = "Otomatik oynat anahtarını video kontrolleri katmanından gizler.";
|
||||
|
||||
"AUTO_FULLSCREEN" = "Otomatik Tam Ekran (YTAutoFullScreen)";
|
||||
"AUTO_FULLSCREEN_DESC" = "Videoları otomatik olarak tam ekranda oynatır.";
|
||||
|
||||
"HIDE_HUD_MESSAGES" = "Gösterge Paneli Mesajlarını gizle";
|
||||
"HIDE_HUD_MESSAGES_DESC" = "Örnek: Altyazılar açıldı/kapandı, Video döngüsü açık,...";
|
||||
|
||||
"OLED_DARKMODE" = "OLED Karanlık modu (Deneysel)";
|
||||
"OLED_DARKMODE_DESC" = "Bazı durumlarda düzgün çalışmayabilir. Bu seçeneği etkinleştirdikten/devre dışı bıraktıktan sonra uygulamanın yeniden başlatılması gerekir.";
|
||||
|
||||
"OLED_KEYBOARD" = "OLED Klavye (Deneysel)";
|
||||
"OLED_KEYBOARD_DESC" = "Bazı durumlarda düzgün çalışmayabilir. Uygulamanın yeniden başlatılması gerekir.";
|
||||
|
||||
"HIDE_PAID_PROMOTION_CARDS" = "Ücretli Promosyon afişini gizle";
|
||||
"HIDE_PAID_PROMOTION_CARDS_DESC" = "Bazı videolarda 'Ücretli Promosyonları İçerir' afişini gizler.";
|
||||
|
||||
// YTCastConfirm
|
||||
"CASTING" = "Yayınlar";
|
||||
"MSG_ARE_YOU_SURE" = "Yayınlamaya başlamak istediğinizden emin misiniz?";
|
||||
"MSG_YES" = "Evet";
|
||||
"MSG_CANCEL" = "İptal";
|
||||
@@ -1,4 +1,7 @@
|
||||
// Settings
|
||||
"VERSION" = "Phiên bản của uYouPlus: %@";
|
||||
"VERSION_CHECK" = "Chạm để kiểm tra bản cập nhật!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "Ẩn tai thỏ/Dynamic Island (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "Ẩn tai thỏ/Dynamic Island chèn vào các video có tỷ lệ 2:1. Cần khởi động lại ứng dụng.";
|
||||
|
||||
@@ -8,9 +11,6 @@
|
||||
"FIX_GOOGLE_SIGNIN" = "Sửa lỗi không thể đăng nhập tài khoản Google";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "Chỉ bật tính năng này khi bạn không thể đăng nhập tài khoản Google và ứng dụng được cài qua TrollStore. Nếu bạn có thể đăng nhập bình thường thì hãy tắt tính năng này. Cần khởi động lại ứng dụng.";
|
||||
|
||||
"KILL_APP" = "Đóng ứng dụng";
|
||||
"KILL_APP_DESC" = "Chạm để đóng YouTube!";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "Ẩn nút Next và nút Previous";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "Ẩn nút Next và nút Previous trong trình phát video.";
|
||||
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
// Settings
|
||||
|
||||
"VERSION" = "当前uYouPlus插件版本:%@";
|
||||
"VERSION_CHECK" = "点击此处检查更新!";
|
||||
|
||||
"DONT_EAT_MY_CONTENT" = "2:1视频刘海屏/灵动岛优化 (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "改进部分机型的刘海区域或灵动岛在2:1比例视频中引发的遮挡问题。更改本设置后需要重启App。";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "改进部分机型的刘海区域或灵动岛在2:1比例视频中引发的遮挡问题(缺口)。更改本设置后需要重启App。";
|
||||
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON" = "替换上一个/下一个按钮";
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "将视频播放器控制界面上的上一个/下一个按钮替换成快进/快退按钮。更改本设置后需要重启App。";
|
||||
|
||||
@@ -1,7 +1,15 @@
|
||||
// Settings
|
||||
"VERSION" = "uYouPlus's version: %@";
|
||||
"VERSION_CHECK" = "Tap to check for update!";
|
||||
|
||||
"KILL_APP" = "關閉YouTube";
|
||||
"KILL_APP_DESC" = "按這裡關閉YouTube!";
|
||||
"DONT_EAT_MY_CONTENT" = "2:1影片瀏海/動態島優化 (DontEatMyContent)";
|
||||
"DONT_EAT_MY_CONTENT_DESC" = "改進部分機型的瀏海區域或動態島在2:1比例影片中引發的遮擋問題。需要重新啟動應用程式。";
|
||||
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON" = "替換上一個/下一個按鈕";
|
||||
"REPLACE_PREVIOUS_NEXT_BUTTON_DESC" = "將影片播放器控制介面上的上一個/下一個按鈕替換成快進/快退按鈕。需要重新啟動應用程式。";
|
||||
|
||||
"FIX_GOOGLE_SIGNIN" = "修復Google帳號登入問題(僅TrollStore用戶有效)";
|
||||
"FIX_GOOGLE_SIGNIN_DESC" = "僅在使用TrollStore安裝本App的情況下生效:啟用本設置後即可正常登錄您的Google帳號。需要重新啟動應用程式。";
|
||||
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON" = "隱藏上一個和下一個按鈕";
|
||||
"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC" = "在影片控制層中隱藏上一個和下一個按鈕";
|
||||
|
||||
+100
-8
@@ -19,6 +19,7 @@
|
||||
#import "Tweaks/YouTubeHeader/YTPlayerOverlayProvider.h"
|
||||
#import "Tweaks/YouTubeHeader/YTReelWatchPlaybackOverlayView.h"
|
||||
#import "Tweaks/YouTubeHeader/YTReelPlayerBottomButton.h"
|
||||
#import "Tweaks/YouTubeHeader/YTReelPlayerViewController.h"
|
||||
|
||||
// Tweak's bundle for Localizations support - @PoomSmart - https://github.com/PoomSmart/YouPiP/commit/aea2473f64c75d73cab713e1e2d5d0a77675024f
|
||||
NSBundle *uYouPlusBundle() {
|
||||
@@ -26,7 +27,13 @@ NSBundle *uYouPlusBundle() {
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
NSString *tweakBundlePath = [[NSBundle mainBundle] pathForResource:@"uYouPlus" ofType:@"bundle"];
|
||||
bundle = [NSBundle bundleWithPath:tweakBundlePath];
|
||||
if (tweakBundlePath)
|
||||
bundle = [NSBundle bundleWithPath:tweakBundlePath];
|
||||
else {
|
||||
bundle = [NSBundle bundleWithPath:@"/Library/Application Support/uYouPlus.bundle"];
|
||||
if (!bundle)
|
||||
bundle = [NSBundle bundleWithPath:@"/var/jb/Library/Application Support/uYouPlus.bundle"];
|
||||
}
|
||||
});
|
||||
return bundle;
|
||||
}
|
||||
@@ -258,10 +265,12 @@ BOOL dontEatMyContent() {
|
||||
- (BOOL)isPromptForLocalNetworkPermissionsEnabled { return NO; }
|
||||
%end
|
||||
|
||||
// YouRememberCaption: https://poomsmart.github.io/repo/depictions/youremembercaption.html
|
||||
%hook YTColdConfig
|
||||
- (BOOL)respectDeviceCaptionSetting { return NO; }
|
||||
- (BOOL)isLandscapeEngagementPanelSwipeRightToDismissEnabled { return YES; }
|
||||
// A/B flags
|
||||
%hook YTColdConfig
|
||||
- (BOOL)respectDeviceCaptionSetting { return NO; } // YouRememberCaption: https://poomsmart.github.io/repo/depictions/youremembercaption.html
|
||||
- (BOOL)isLandscapeEngagementPanelSwipeRightToDismissEnabled { return YES; } // Swipe right to dismiss the right panel in fullscreen mode
|
||||
- (BOOL)mainAppCoreClientIosTransientVisualGlitchInPivotBarFix { return NO; } // Fix uYou's label glitching - qnblackcat/uYouPlus#552
|
||||
- (BOOL)enableSwipeToRemoveInPlaylistWatchEp { return YES; } // Enable swipe right to remove video in Playlist.
|
||||
%end
|
||||
|
||||
// NOYTPremium - https://github.com/PoomSmart/NoYTPremium/
|
||||
@@ -291,13 +300,26 @@ BOOL dontEatMyContent() {
|
||||
- (void)showSurveyWithRenderer:(id)arg1 surveyParentResponder:(id)arg2 {}
|
||||
%end
|
||||
|
||||
// Enable Shorts scroll bar - @PoomSmart
|
||||
// YTShortsProgress - @PoomSmart - https://github.com/PoomSmart/YTShortsProgress
|
||||
%hook YTReelPlayerViewController
|
||||
- (BOOL)shouldEnablePlayerBar { return YES; }
|
||||
- (BOOL)shouldAlwaysEnablePlayerBar { return YES; }
|
||||
- (BOOL)shouldEnablePlayerBarOnlyOnPause { return NO; }
|
||||
%end
|
||||
|
||||
%hook YTInlinePlayerBarContainerView
|
||||
- (void)setUserInteractionEnabled:(BOOL)enabled { %orig(YES); }
|
||||
%hook YTReelPlayerViewControllerSub
|
||||
- (BOOL)shouldEnablePlayerBar { return YES; }
|
||||
- (BOOL)shouldAlwaysEnablePlayerBar { return YES; }
|
||||
- (BOOL)shouldEnablePlayerBarOnlyOnPause { return NO; }
|
||||
%end
|
||||
|
||||
%hook YTColdConfig
|
||||
- (BOOL)iosEnableVideoPlayerScrubber { return YES; }
|
||||
- (BOOL)mobileShortsTabInlined { return YES; }
|
||||
%end
|
||||
|
||||
%hook YTHotConfig
|
||||
- (BOOL)enablePlayerBarForVerticalVideoWhenControlsHiddenInFullscreen { return YES; }
|
||||
%end
|
||||
|
||||
// Workaround for issue #54
|
||||
@@ -779,6 +801,11 @@ UIColor* raisedColor = [UIColor colorWithRed:0.035 green:0.035 blue:0.035 alpha:
|
||||
}
|
||||
}
|
||||
%end
|
||||
|
||||
// Incompatibility with the new YT Dark theme
|
||||
%hook YTColdConfig
|
||||
- (BOOL)uiSystemsClientGlobalConfigUseDarkerPaletteBgColorForNative { return NO; }
|
||||
%end
|
||||
%end
|
||||
|
||||
# pragma mark - OLED keyboard by @ichitaso <3 - http://gist.github.com/ichitaso/935100fd53a26f18a9060f7195a1be0e
|
||||
@@ -1027,6 +1054,71 @@ void center() {
|
||||
centerYConstraint.active = YES;
|
||||
}
|
||||
|
||||
// YTSpeed - https://github.com/Lyvendia/YTSpeed
|
||||
%hook YTVarispeedSwitchController
|
||||
- (id)init {
|
||||
id result = %orig;
|
||||
|
||||
const int size = 12;
|
||||
float speeds[] = {0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0, 2.25, 2.5, 2.75, 3.0};
|
||||
id varispeedSwitchControllerOptions[size];
|
||||
|
||||
for (int i = 0; i < size; ++i) {
|
||||
id title = [NSString stringWithFormat:@"%.2fx", speeds[i]];
|
||||
varispeedSwitchControllerOptions[i] = [[%c(YTVarispeedSwitchControllerOption) alloc] initWithTitle:title rate:speeds[i]];
|
||||
}
|
||||
|
||||
NSUInteger count = sizeof(varispeedSwitchControllerOptions) / sizeof(id);
|
||||
NSArray *varispeedArray = [NSArray arrayWithObjects:varispeedSwitchControllerOptions count:count];
|
||||
MSHookIvar<NSArray *>(self, "_options") = varispeedArray;
|
||||
|
||||
return result;
|
||||
}
|
||||
%end
|
||||
|
||||
%hook MLHAMQueuePlayer
|
||||
- (void)setRate:(float)rate {
|
||||
MSHookIvar<float>(self, "_rate") = rate;
|
||||
MSHookIvar<float>(self, "_preferredRate") = rate;
|
||||
|
||||
id player = MSHookIvar<HAMPlayerInternal *>(self, "_player");
|
||||
[player setRate: rate];
|
||||
|
||||
id stickySettings = MSHookIvar<MLPlayerStickySettings *>(self, "_stickySettings");
|
||||
[stickySettings setRate: rate];
|
||||
|
||||
[self.playerEventCenter broadcastRateChange: rate];
|
||||
|
||||
YTSingleVideoController *singleVideoController = self.delegate;
|
||||
[singleVideoController playerRateDidChange: rate];
|
||||
}
|
||||
%end
|
||||
|
||||
%hook YTPlayerViewController
|
||||
%property float playbackRate;
|
||||
- (void)singleVideo:(id)video playbackRateDidChange:(float)rate {
|
||||
%orig;
|
||||
}
|
||||
%end
|
||||
|
||||
// Workaround for qnblackcat/uYouPlus#617
|
||||
static BOOL didFinishLaunching;
|
||||
|
||||
%hook YTAppDelegate
|
||||
- (BOOL)application:(UIApplication *)application
|
||||
didFinishLaunchingWithOptions:(NSDictionary<UIApplicationLaunchOptionsKey, id> *)launchOptions {
|
||||
didFinishLaunching = %orig;
|
||||
self.downloadsVC = [self.downloadsVC init];
|
||||
return didFinishLaunching;
|
||||
}
|
||||
%end
|
||||
|
||||
%hook DownloadsPagerVC
|
||||
- (instancetype)init {
|
||||
return didFinishLaunching ? %orig : self;
|
||||
}
|
||||
%end
|
||||
|
||||
// iOS 16 uYou crash fix - @level3tjg: https://github.com/qnblackcat/uYouPlus/pull/224
|
||||
%group iOS16
|
||||
%hook OBPrivacyLinkButton
|
||||
|
||||
Reference in New Issue
Block a user