diff --git a/Makefile b/Makefile index 69701b0..63944b7 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ endif DEBUG=0 FINALPACKAGE=1 ARCHS = arm64 -PACKAGE_VERSION = 2.6.2 +PACKAGE_VERSION = 2.6.3 TARGET := iphone:clang:latest:13.0 include $(THEOS)/makefiles/common.mk diff --git a/Settings.x b/Settings.x index e04ffa3..3e28420 100644 --- a/Settings.x +++ b/Settings.x @@ -287,7 +287,7 @@ static YTSettingsSectionItem *createSwitchItem(NSString *title, NSString *titleD createSwitchItem(LOC(@"PostManager"), LOC(@"PostManagerDesc"), @"postManager", &kPostManager, selfObject), createSwitchItem(LOC(@"SavePostImage"), LOC(@"SavePostImageDesc"), @"savePostImage", &kSavePostImage, selfObject), createSwitchItem(LOC(@"SaveProfilePhoto"), LOC(@"SaveProfilePhotoDesc"), @"saveProfilePhoto", &kSaveProfilePhoto, selfObject), - createSwitchItem(LOC(@"CopyCommentText"), LOC(@"CopyCommentTextDesc"), @"copyCommentText", &kCopyCommentText, selfObject), + createSwitchItem(LOC(@"CommentManager"), LOC(@"CommentManagerDesc"), @"commentManager", &kCommentManager, selfObject), createSwitchItem(LOC(@"FixAlbums"), LOC(@"FixAlbumsDesc"), @"fixAlbums", &kFixAlbums, selfObject), createSwitchItem(LOC(@"RemovePlayNext"), LOC(@"RemovePlayNextDesc"), @"removePlayNext", &kRemovePlayNext, selfObject), createSwitchItem(LOC(@"NoContinueWatching"), LOC(@"NoContinueWatchingDesc"), @"noContinueWatching", &kNoContinueWatching, selfObject), diff --git a/YTLite.h b/YTLite.h index 4075f4a..689c832 100644 --- a/YTLite.h +++ b/YTLite.h @@ -114,7 +114,7 @@ BOOL kCopyVideoInfo; BOOL kPostManager; BOOL kSavePostImage; BOOL kSaveProfilePhoto; -BOOL kCopyCommentText; +BOOL kCommentManager; BOOL kSavePost; BOOL kFixAlbums; BOOL kRemovePlayNext; @@ -316,7 +316,7 @@ int kPivotIndex; - (void)postManager:(UILongPressGestureRecognizer *)sender; - (void)saveImage:(UILongPressGestureRecognizer *)sender; - (void)savePFP:(UILongPressGestureRecognizer *)sender; -- (void)copyComment:(UILongPressGestureRecognizer *)sender; +- (void)commentManager:(UILongPressGestureRecognizer *)sender; @end @interface MLHAMQueuePlayer : NSObject diff --git a/YTLite.x b/YTLite.x index d0b3f0e..4082e22 100644 --- a/YTLite.x +++ b/YTLite.x @@ -642,10 +642,10 @@ static BOOL isOverlayShown = YES; %end %hook ASDisplayNode -- (void)didLoad { +- (void)setFrame:(CGRect)frame { %orig; - if (kCopyCommentText && [[self valueForKey:@"_accessibilityIdentifier"] isEqualToString:@"id.comment.content.label"]) { + if (kCommentManager && [[self valueForKey:@"_accessibilityIdentifier"] isEqualToString:@"id.comment.content.label"]) { ASTextNode *textNode = (ASTextNode *)self; NSString *comment = textNode.attributedText.string; @@ -661,7 +661,6 @@ static BOOL isOverlayShown = YES; if (kPostManager && [self isKindOfClass:NSClassFromString(@"ELMExpandableTextNode")]) { ELMExpandableTextNode *expandableTextNode = (ELMExpandableTextNode *)self; ASTextNode *textNode = (ASTextNode *)expandableTextNode.currentTextNode; - NSString *text = textNode.attributedText.string; NSMutableArray *allObjects = self.supernodes.allObjects; @@ -730,7 +729,7 @@ static void genImageFromLayer(CALayer *layer, UIColor *backgroundColor, void (^c @{@"selector": @"postManager:", @"text": @"id.ui.backstage.original_post", @"key": @(kPostManager)}, @{@"selector": @"saveImage:", @"text": @"YTImageZoomNode-View", @"key": @(kSavePostImage)}, @{@"selector": @"savePFP:", @"text": @"ELMImageNode-View", @"key": @(kSaveProfilePhoto)}, - @{@"selector": @"copyComment:", @"text": @"id.ui.comment_cell", @"key": @(kCopyCommentText)} + @{@"selector": @"commentManager:", @"text": @"id.ui.comment_cell", @"key": @(kCommentManager)} ]; for (NSDictionary *gestureInfo in gesturesInfo) { @@ -832,18 +831,46 @@ static void genImageFromLayer(CALayer *layer, UIColor *backgroundColor, void (^c } %new -- (void)copyComment:(UILongPressGestureRecognizer *)sender { +- (void)commentManager:(UILongPressGestureRecognizer *)sender { if (sender.state == UIGestureRecognizerStateBegan) { ELMContainerNode *containerNode = (ELMContainerNode *)self.keepalive_node; NSString *comment = containerNode.copiedComment; - if (comment) { - [UIPasteboard generalPasteboard].string = comment; + CALayer *layer = self.layer; + UIColor *backgroundColor = containerNode.closestViewController.view.backgroundColor; - UIResponder *responder = self.nextResponder; - while (responder && ![responder isKindOfClass:[UIViewController class]]) responder = responder.nextResponder; - if (responder) [[%c(YTToastResponderEvent) eventWithMessage:LOC(@"Copied") firstResponder:responder] send]; - } + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:LOC(@"SelectAction") message:nil preferredStyle:UIAlertControllerStyleActionSheet]; + alertController.view.tintColor = [UIColor labelColor]; + + [alertController addAction:[UIAlertAction actionWithTitle:LOC(@"CopyCommentText") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { + if (comment) { + [UIPasteboard generalPasteboard].string = comment; + [[%c(YTToastResponderEvent) eventWithMessage:LOC(@"Copied") firstResponder:containerNode.closestViewController] send]; + } + }]]; + + [alertController addAction:[UIAlertAction actionWithTitle:LOC(@"SaveCommentAsImage") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { + genImageFromLayer(layer, backgroundColor, ^(UIImage *image) { + [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ + PHAssetCreationRequest *request = [PHAssetCreationRequest creationRequestForAssetFromImage:image]; + request.creationDate = [NSDate date]; + } completionHandler:^(BOOL success, NSError *error) { + NSString *message = success ? LOC(@"Saved") : [NSString stringWithFormat:LOC(@"%@: %@"), LOC(@"Error"), error.localizedDescription]; + [[%c(YTToastResponderEvent) eventWithMessage:message firstResponder:containerNode.closestViewController] send]; + }]; + }); + }]]; + + [alertController addAction:[UIAlertAction actionWithTitle:LOC(@"CopyCommentAsImage") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { + genImageFromLayer(layer, backgroundColor, ^(UIImage *image) { + [UIPasteboard generalPasteboard].image = image; + [[%c(YTToastResponderEvent) eventWithMessage:LOC(@"Copied") firstResponder:containerNode.closestViewController] send]; + }); + }]]; + + [alertController addAction:[UIAlertAction actionWithTitle:LOC(@"Cancel") style:UIAlertActionStyleCancel handler:nil]]; + + [containerNode.closestViewController presentViewController:alertController animated:YES completion:nil]; } } %end @@ -1134,7 +1161,7 @@ static void reloadPrefs() { kPostManager = [prefs[@"postManager"] boolValue] ?: NO; kSavePostImage = [prefs[@"savePostImage"] boolValue] ?: NO; kSaveProfilePhoto = [prefs[@"savePostImage"] boolValue] ?: NO; - kCopyCommentText = [prefs[@"copyCommentText"] boolValue] ?: NO; + kCommentManager = [prefs[@"commentManager"] boolValue] ?: NO; kFixAlbums = [prefs[@"fixAlbums"] boolValue] ?: NO; kRemovePlayNext = [prefs[@"removePlayNext"] boolValue] ?: NO; kNoContinueWatching = [prefs[@"noContinueWatching"] boolValue] ?: NO; @@ -1220,7 +1247,7 @@ static void reloadPrefs() { @"postManager" : @(kPostManager), @"savePostImage" : @(kSavePostImage), @"saveProfilePhoto" : @(kSaveProfilePhoto), - @"copyCommentText" : @(kCopyCommentText), + @"commentManager" : @(kCommentManager), @"fixAlbums" : @(kFixAlbums), @"removePlayNext" : @(kRemovePlayNext), @"noContinueWatching" : @(kNoContinueWatching), diff --git a/layout/Library/Application Support/YTLite.bundle/en.lproj/Localizable.strings b/layout/Library/Application Support/YTLite.bundle/en.lproj/Localizable.strings index 13a3ab8..d0e96b6 100644 --- a/layout/Library/Application Support/YTLite.bundle/en.lproj/Localizable.strings +++ b/layout/Library/Application Support/YTLite.bundle/en.lproj/Localizable.strings @@ -151,8 +151,8 @@ "SavePostImageDesc" = "Saves community post image to the Photos app by long tap."; "SaveProfilePhoto" = "Save profile picture"; "SaveProfilePhotoDesc" = "Saves profile picture to the Photos app by long tap."; -"CopyCommentText" = "Copy comments text"; -"CopyCommentTextDesc" = "Copies comments text to the clipboard by long tap."; +"CommentManager" = "Save comment information"; +"CommentManagerDesc" = "Allows to copy comment text and save comment as image by long tap."; "FixAlbums" = "Fix covers"; "FixAlbumsDesc" = "Fixes the display of covers for users from Russia."; "RemovePlayNext" = "Remove \"Play next in queue\""; @@ -209,6 +209,9 @@ "CopyPostText" = "Copy post text"; "SavePostAsImage" = "Save post as image"; "CopyPostAsImage" = "Copy post as image"; +"CopyCommentText" = "Copy comment text"; +"SaveCommentAsImage" = "Save comment as image"; +"CopyCommentAsImage" = "Copy comment as image"; "Cancel" = "Cancel"; "Copied" = "Copied to clipboard"; "Saved" = "Saved to Photos"; diff --git a/layout/Library/Application Support/YTLite.bundle/es.lproj/Localizable.strings b/layout/Library/Application Support/YTLite.bundle/es.lproj/Localizable.strings index 48017c6..5624ad6 100644 --- a/layout/Library/Application Support/YTLite.bundle/es.lproj/Localizable.strings +++ b/layout/Library/Application Support/YTLite.bundle/es.lproj/Localizable.strings @@ -151,8 +151,8 @@ "SavePostImageDesc" = "Guarda la imagen de las publicaciones de la comunidad en la aplicación Fotos con un toque prolongado"; "SaveProfilePhoto" = "Guardar foto de perfil"; "SaveProfilePhotoDesc" = "Guarda la imagen de perfil en la aplicación Fotos con un toque prolongado"; -"CopyCommentText" = "Copy comments text"; -"CopyCommentTextDesc" = "Copies comments text to the clipboard by long tap."; +"CommentManager" = "Save comment information"; +"CommentManagerDesc" = "Allows to copy comment text and save comment as image by long tap."; "FixAlbums" = "Arreglar portadas"; "FixAlbumsDesc" = "Corrige la visualización de portadas para usuarios de Rusia"; "RemovePlayNext" = "Eliminar \"Reproducir siguiente en cola\""; @@ -209,6 +209,9 @@ "CopyPostText" = "Copy post text"; "SavePostAsImage" = "Save post as image"; "CopyPostAsImage" = "Copy post as image"; +"CopyCommentText" = "Copy comment text"; +"SaveCommentAsImage" = "Save comment as image"; +"CopyCommentAsImage" = "Copy comment as image"; "Cancel" = "Cancel"; "Copied" = "Copiado al portapapeles"; "Done" = "Done"; diff --git a/layout/Library/Application Support/YTLite.bundle/fr.lproj/Localizable.strings b/layout/Library/Application Support/YTLite.bundle/fr.lproj/Localizable.strings index c384aa6..b96e880 100644 --- a/layout/Library/Application Support/YTLite.bundle/fr.lproj/Localizable.strings +++ b/layout/Library/Application Support/YTLite.bundle/fr.lproj/Localizable.strings @@ -151,8 +151,8 @@ "SavePostImageDesc" = "Enregistre l'image des publications de la communauté dans l'application Photos en appuyant longuement."; "SaveProfilePhoto" = "Enregistrer la photo de profil"; "SaveProfilePhotoDesc" = "Enregistre la photo de profil dans l'application Photos en appuyant longuement."; -"CopyCommentText" = "Copier le texte des commentaires"; -"CopyCommentTextDesc" = "Copie le texte des commentaires dans le presse-papiers par un appui long."; +"CommentManager" = "Save comment information"; +"CommentManagerDesc" = "Allows to copy comment text and save comment as image by long tap."; "FixAlbums" = "Réparer les couvertures"; "FixAlbumsDesc" = "Répare l'affichage des couvertures pour les utilisateurs de Russie."; "RemovePlayNext" = "Supprimer \"Placer en première position dans la file d'attente\""; @@ -209,6 +209,9 @@ "CopyPostText" = "Copy post text"; "SavePostAsImage" = "Save post as image"; "CopyPostAsImage" = "Copy post as image"; +"CopyCommentText" = "Copy comment text"; +"SaveCommentAsImage" = "Save comment as image"; +"CopyCommentAsImage" = "Copy comment as image"; "Cancel" = "Annuler"; "Copied" = "Copié dans le presse-papiers"; "Saved" = "Enregistré dans Photos"; diff --git a/layout/Library/Application Support/YTLite.bundle/ja.lproj/Localizable.strings b/layout/Library/Application Support/YTLite.bundle/ja.lproj/Localizable.strings index 513a916..789fb76 100644 --- a/layout/Library/Application Support/YTLite.bundle/ja.lproj/Localizable.strings +++ b/layout/Library/Application Support/YTLite.bundle/ja.lproj/Localizable.strings @@ -151,8 +151,8 @@ "SavePostImageDesc" = "Saves community posts image to the Photos app by long tap."; "SaveProfilePhoto" = "Save profile picture"; "SaveProfilePhotoDesc" = "Saves profile picture to the Photos app by long tap."; -"CopyCommentText" = "Copy comments text"; -"CopyCommentTextDesc" = "Copies comments text to the clipboard by long tap."; +"CommentManager" = "Save comment information"; +"CommentManagerDesc" = "Allows to copy comment text and save comment as image by long tap."; "FixAlbums" = "Fix covers"; "FixAlbumsDesc" = "Fixes the display of covers for users from Russia."; "RemovePlayNext" = "\"次に再生\"を削除"; @@ -209,6 +209,9 @@ "CopyPostText" = "Copy post text"; "SavePostAsImage" = "Save post as image"; "CopyPostAsImage" = "Copy post as image"; +"CopyCommentText" = "Copy comment text"; +"SaveCommentAsImage" = "Save comment as image"; +"CopyCommentAsImage" = "Copy comment as image"; "Cancel" = "Cancel"; "Copied" = "Copied to clipboard"; "Saved" = "Saved to Photos"; diff --git a/layout/Library/Application Support/YTLite.bundle/ru.lproj/Localizable.strings b/layout/Library/Application Support/YTLite.bundle/ru.lproj/Localizable.strings index 6100ca1..4d419ea 100644 --- a/layout/Library/Application Support/YTLite.bundle/ru.lproj/Localizable.strings +++ b/layout/Library/Application Support/YTLite.bundle/ru.lproj/Localizable.strings @@ -153,6 +153,8 @@ "SaveProfilePhotoDesc" = "Сохраняет фото профиля в «Фото» долгим нажатием по нему."; "CopyCommentText" = "Копировать текст комментариев"; "CopyCommentTextDesc" = "Копирует текст комментариев в буфер обмена долгим нажатием."; +"CommentManager" = "Сохранять информацию с комментариев"; +"CommentManagerDesc" = "Позволяет скопировать текст из комментария или сохранить комментарий как фото долгим нажатием по нему."; "FixAlbums" = "Исправить отображение обложек"; "FixAlbumsDesc" = "Исправляет отображение обложек в том случае, если вы из России."; "RemovePlayNext" = "Убрать «Добавить в начало очереди»"; @@ -206,9 +208,12 @@ "SelectAction" = "Выберите действие"; "CopyTitle" = "Скопировать название"; "CopyDescription" = "Скопировать описание"; -"CopyPostText" = "Копировать текст поста"; +"CopyPostText" = "Скопировать текст поста"; "SavePostAsImage" = "Сохранить пост как фото"; "CopyPostAsImage" = "Скопировать пост как фото"; +"CopyCommentText" = "Скопировать текст комментария"; +"SaveCommentAsImage" = "Сохранить комментарий как фото"; +"CopyCommentAsImage" = "Скопировать комментарий как фото"; "Cancel" = "Отмена"; "Copied" = "Скопировано в буфер обмена"; "Saved" = "Сохранено в Фото"; diff --git a/layout/Library/Application Support/YTLite.bundle/vi.lproj/Localizable.strings b/layout/Library/Application Support/YTLite.bundle/vi.lproj/Localizable.strings index 02fcdd8..208349a 100644 --- a/layout/Library/Application Support/YTLite.bundle/vi.lproj/Localizable.strings +++ b/layout/Library/Application Support/YTLite.bundle/vi.lproj/Localizable.strings @@ -21,11 +21,11 @@ "NoYTLogoDesc" = "Xóa logo YouTube trong thanh Điều hướng."; "Overlay" = "Lớp phủ"; -"HideAutoplay" = "Ẩn công tắc Tự động phát"; -"HideAutoplayDesc" = "Ẩn công tắc Tự động phát khỏi lớp phủ."; +"HideAutoplay" = "Ẩn nút Tự động phát"; +"HideAutoplayDesc" = "Ẩn nút Tự động phát trong trình phát video."; "HideSubs" = "Ẩn nút phụ đề"; "HideSubsDesc" = "Ẩn nút Phụ đề khỏi lớp phủ."; -"NoHUDMsgs" = "Ẩn tin nhắn HUD"; +"NoHUDMsgs" = "Ẩn thông báo HUD"; "NoHUDMsgsDesc" = "Ẩn tất cả các thông báo tính năng từ người chơi. Ví dụ: CC được bật/tắt, Vòng lặp video được bật, v.v."; "HidePrevNext" = "Ẩn nút Trước và Tiếp theo"; "HidePrevNextDesc" = "Ẩn các nút Trước và Tiếp theo khỏi lớp phủ video."; @@ -43,40 +43,40 @@ "NoRelatedVidsDesc" = "Xóa các video liên quan được hiển thị trong lớp phủ bằng cách vuốt lên."; "NoPromotionCards" = "Ẩn thẻ Quảng cáo trả phí"; "NoPromotionCardsDesc" = "Ẩn thẻ \"Bao gồm quảng cáo trả phí\" trong các video có quảng cáo."; -"NoWatermarks" = "Ẩn hình mờ"; -"NoWatermarksDesc" = "Ẩn hình mờ kênh khỏi trình phát."; +"NoWatermarks" = "Ẩn watermark của kênh"; +"NoWatermarksDesc" = "Ẩn watermark của kênh trong video. Yêu cầu khởi động lại ứng dụng."; "Player" = "Trình phát"; -"Miniplayer" = "Bật trình phát mini"; -"MiniplayerDesc" = "Bật trình phát mini cho các video ban đầu không được thiết kế cho trình phát đó, chẳng hạn như các video dành cho trẻ em."; +"Miniplayer" = "Cho phép sử dụng trình phát thu nhỏ với mọi video"; +"MiniplayerDesc" = "Cho phép sử dụng trình phát thu nhỏ với mọi video ban đầu không được thiết kế cho trình phát đó, chẳng hạn như các video dành cho trẻ em."; "PortraitFullscreen" = "Chế độ toàn màn hình dọc"; "PortraitFullscreenDesc" = "Cho phép hỗ trợ chế độ toàn màn hình dọc."; "CopyWithTimestamp" = "Sao chép các liên kết có dấu thời gian"; "CopyWithTimestampDesc" = "Cho phép sao chép liên kết có dấu thời gian vào bảng tạm bằng cách nhấn nút tạm dừng."; "DisableAutoplay" = "Tắt video Tự động phát"; "DisableAutoplayDesc" = "Ngăn chặn phát lại video sau khi mở."; -"DisableAutoCaptions" = "Tắt phụ đề tự động"; -"DisableAutoCaptionsDesc" = "Ngăn chặn việc tự động kích hoạt phụ đề."; +"DisableAutoCaptions" = "Tắt chú thích tự động"; +"DisableAutoCaptionsDesc" = "Ngăn chặn việc tự động kích hoạt chú thích."; "NoContentWarning" = "Bỏ qua cảnh báo nội dung"; "NoContentWarningDesc" = "Bỏ qua thông báo cảnh báo nội dung nhạy cảm."; "ClassicQuality" = "Chất lượng video cổ điển"; "ClassicQualityDesc" = "Mang lại menu lựa chọn chất lượng video cổ điển."; "ExtraSpeedOptions" = "Bổ sung tùy chọn tốc độ"; -"ExtraSpeedOptionsDesc" = "Thêm nhiều tùy chọn tốc độ phát lại video vào menu trình phát."; -"DontSnap2Chapter" = "Tắt tính năng chuyển sang tập tiếp theo"; -"DontSnap2ChapterDesc" = "Vô hiệu hóa việc chuyển sang tập tiếp theo bằng cử chỉ nhấn đúp."; +"ExtraSpeedOptionsDesc" = "Thêm nhiều tùy chọn tốc độ phát video vào menu trình phát."; +"DontSnap2Chapter" = "Tắt tự động chuyển tới chương"; +"DontSnap2ChapterDesc" = "Tắt tính năng tự động chuyển tới chương gần nhất khi tua video."; "RedProgressBar" = "Thanh tiến trình màu đỏ"; "RedProgressBarDesc" = "Mang lại thanh tiến trình màu đỏ."; "NoHints" = "Tắt gợi ý"; "NoHintsDesc" = "Tắt gợi ý của tác giả xuất hiện ở góc trên bên phải trong khi phát lại."; -"NoFreeZoom" = "Tắt cử chỉ thu phóng"; -"NoFreeZoomDesc" = "Tắt các cử chỉ thu phóng mới."; +"NoFreeZoom" = "Tắt tính năng chạm để thu phóng"; +"NoFreeZoomDesc" = "Tắt tính năng chạm để thu phóng"; "AutoFullscreen" = "Phát video ở chế độ toàn màn hình"; "AutoFullscreenDesc" = "Tự động phát video ở chế độ toàn màn hình."; "ExitFullscreen" = "Thoát chế độ toàn màn hình khi hoàn tất"; "ExitFullscreenDesc" = "Thoát khỏi chế độ toàn màn hình khi kết thúc phát video."; -"NoDoubleTap2Seek" = "Tắt tính năng nhấn đúp để tìm kiếm"; -"NoDoubleTap2SeekDesc" = "Tắt cử chỉ nhấn đúp để tìm kiếm."; +"NoDoubleTap2Seek" = "Tắt tình năng chạm 2 lần để tua"; +"NoDoubleTap2SeekDesc" = "Tắt tình năng chạm 2 lần để tua"; "Tabbar" = "Thanh tab"; "RemoveLabels" = "Xóa nhãn"; @@ -107,8 +107,8 @@ "PinchToFullscreenShortsDesc" = "Quản lý khả năng hiển thị của lớp phủ bằng cử chỉ chụm vào và kéo ra, hiển thị Shorts ở chế độ toàn màn hình."; "ShortsToRegular" = "Từ Shorts đến video thông thường"; "ShortsToRegularDesc" = "Mở Shorts như video thông thường."; -"ResumeShorts" = "Đừng bắt đầu từ tab Shorts"; -"ResumeShortsDesc" = "Ngăn chặn việc bắt đầu từ Shorts ở ứng dụng đang mở, điều này xảy ra nếu YouTube bị đóng trong khi xem Shorts."; +"ResumeShorts" = "Tắt tính năng tự động tiếp tục Shorts"; +"ResumeShortsDesc" = "Nếu bạn thoát YouTube trong khi đang xem video Shorts, video Shorts đó sẽ không tự động phát khi bạn mở lại YouTube."; "HideShortsLogo" = "Ẩn biểu tượng Shorts"; "HideShortsLogoDesc" = "Ẩn biểu tượng Shorts ở góc trên cùng bên trái."; "HideShortsSearch" = "Ẩn nút Tìm kiếm"; @@ -145,18 +145,18 @@ "Other" = "Khác"; "CopyVideoInfo" = "Sao chép thông tin video"; "CopyVideoInfoDesc" = "Thêm nút để sao chép tiêu đề và mô tả video vào bảng Mô tả Video."; -"PostManager" = "Save post information"; -"PostManagerDesc" = "Allows to copy post text and save post as image by long tap."; -"SavePostImage" = "Lưu hình ảnh từ bài đăng trên cộng đồng"; -"SavePostImageDesc" = "Lưu hình ảnh bài đăng của cộng đồng vào ứng dụng Ảnh bằng cách nhấn giữ."; +"PostManager" = "Lưu bài viết"; +"PostManagerDesc" = "Cho phép sao chép văn bản bài viết và lưu bài viết dưới dạng hình ảnh bằng cách nhấn giữ."; +"SavePostImage" = "Lưu hình ảnh từ bài viết trên cộng đồng"; +"SavePostImageDesc" = "Lưu hình ảnh bài viết của cộng đồng vào ứng dụng Ảnh bằng cách nhấn giữ."; "SaveProfilePhoto" = "Lưu ảnh hồ sơ"; "SaveProfilePhotoDesc" = "Lưu ảnh hồ sơ vào ứng dụng Ảnh bằng cách nhấn và giữ."; -"CopyCommentText" = "Sao chép văn bản bình luận"; -"CopyCommentTextDesc" = "Sao chép văn bản nhận xét vào clipboard bằng cách nhấn giữ."; +"CommentManager" = "Save comment information"; +"CommentManagerDesc" = "Allows to copy comment text and save comment as image by long tap."; "FixAlbums" = "Sửa Albums"; "FixAlbumsDesc" = "Sửa lỗi hiển thị Albums cho người dùng Nga."; -"RemovePlayNext" = "Xóa \"Chơi tiếp theo trong hàng đợi\""; -"RemovePlayNextDesc" = "Xóa tùy chọn \"Chơi tiếp theo trong hàng đợi\" khỏi menu."; +"RemovePlayNext" = "Xóa \"Phát tiếp theo trong danh sách chờ\""; +"RemovePlayNextDesc" = "Xóa tùy chọn \"Phát tiếp theo trong danh sách chờ\" khỏi menu."; "NoContinueWatching" = "Xóa \"Tiếp tục xem\""; "NoContinueWatchingDesc" = "Xóa phần \"Tiếp tục xem\" chứa các video chưa xem hết khỏi Trang chủ."; "NoSearchHistory" = "Ẩn lịch sử tìm kiếm"; @@ -165,8 +165,8 @@ "NoRelatedWatchNextsDesc" = "Ẩn tất cả video bên dưới trình phát, chỉ để lại phần thông tin video và nhận xét."; "StickSortComments" = "Dán tiêu đề bình luận"; "StickSortCommentsDesc" = "Ghim sắp xếp tiêu đề nhận xét (Hàng đầu, Mới nhất) để nó không biến mất khi cuộn."; -"HideSortComments" = "Ẩn tiêu đề bình luận"; -"HideSortCommentsDesc" = "Ẩn tiêu đề nhận xét sắp xếp (Hàng đầu, Mới nhất) để nó không bao giờ xuất hiện."; +"HideSortComments" = "Ẩn bình luận"; +"HideSortCommentsDesc" = "Ẩn bình luận Short, sắp xếp (Hàng đầu, Mới nhất) để nó không bao giờ xuất hiện."; "PlaylistOldMinibar" = "Danh sách phát mini bar cũ"; "PlaylistOldMinibarDesc" = "Thay thế bảng điều khiển danh sách phát nổi mới bằng bảng điều khiển cũ."; "DisableRTL" = "Tắt định dạng RTL"; @@ -206,9 +206,12 @@ "SelectAction" = "Chọn hành động"; "CopyTitle" = "Sao chép tiêu đề"; "CopyDescription" = "Sao chép mô tả"; -"CopyPostText" = "Copy post text"; -"SavePostAsImage" = "Save post as image"; -"CopyPostAsImage" = "Copy post as image"; +"CopyPostText" = "Sao chép văn bản bài viết"; +"SavePostAsImage" = "Lưu bài viết dưới dạng hình ảnh"; +"CopyPostAsImage" = "Sao chép bài viết dưới dạng hình ảnh"; +"CopyCommentText" = "Copy comment text"; +"SaveCommentAsImage" = "Save comment as image"; +"CopyCommentAsImage" = "Copy comment as image"; "Cancel" = "Hủy bỏ"; "Copied" = "Sao chép vào clipboard"; "Saved" = "Đã lưu vào Ảnh"; diff --git a/layout/Library/Application Support/YTLite.bundle/zh-Hans.lproj/Localizable.strings b/layout/Library/Application Support/YTLite.bundle/zh-Hans.lproj/Localizable.strings index 28eb3e9..1ad9981 100644 --- a/layout/Library/Application Support/YTLite.bundle/zh-Hans.lproj/Localizable.strings +++ b/layout/Library/Application Support/YTLite.bundle/zh-Hans.lproj/Localizable.strings @@ -145,14 +145,14 @@ "Other" = "其他"; "CopyVideoInfo" = "复制视频信息"; "CopyVideoInfoDesc" = "添加按钮从“视频说明”面板中复制视频的标题和描述。"; -"PostManager" = "Save post information"; -"PostManagerDesc" = "Allows to copy post text and save post as image by long tap."; +"PostManager" = "保存帖子信息"; +"PostManagerDesc" = "允许通过长按复制帖子文本并将帖子另存为图片。"; "SavePostImage" = "保存社区帖子图片"; "SavePostImageDesc" = "长按社区帖子图片保存到照片应用程序。"; "SaveProfilePhoto" = "保存个人资料图片"; "SaveProfilePhotoDesc" = "长按个人资料图片保存到照片应用程序。"; -"CopyCommentText" = "复制评论文本"; -"CopyCommentTextDesc" = "长按将评论文本复制到剪贴板。"; +"CommentManager" = "Save comment information"; +"CommentManagerDesc" = "Allows to copy comment text and save comment as image by long tap."; "FixAlbums" = "修复封面"; "FixAlbumsDesc" = "修复来自俄罗斯用户的封面显示问题。"; "RemovePlayNext" = "删除“播放队列中的下一个”"; @@ -206,9 +206,12 @@ "SelectAction" = "选择操作"; "CopyTitle" = "复制标题"; "CopyDescription" = "复制描述"; -"CopyPostText" = "Copy post text"; -"SavePostAsImage" = "Save post as image"; -"CopyPostAsImage" = "Copy post as image"; +"CopyPostText" = "复制帖子文本"; +"SavePostAsImage" = "帖子另存为图片"; +"CopyPostAsImage" = "帖子作为图片复制"; +"CopyCommentText" = "Copy comment text"; +"SaveCommentAsImage" = "Save comment as image"; +"CopyCommentAsImage" = "Copy comment as image"; "Cancel" = "取消"; "Copied" = "已复制到剪贴板"; "Saved" = "已保存到照片"; diff --git a/layout/Library/Application Support/YTLite.bundle/zh-Hant.lproj/Localizable.strings b/layout/Library/Application Support/YTLite.bundle/zh-Hant.lproj/Localizable.strings index 66f57e4..6fcfc9f 100644 --- a/layout/Library/Application Support/YTLite.bundle/zh-Hant.lproj/Localizable.strings +++ b/layout/Library/Application Support/YTLite.bundle/zh-Hant.lproj/Localizable.strings @@ -145,14 +145,14 @@ "Other" = "其它"; "CopyVideoInfo" = "複製影片資訊"; "CopyVideoInfoDesc" = "新增按鈕將影片標題和說明,複製到影片說明欄"; -"PostManager" = "Save post information"; -"PostManagerDesc" = "Allows to copy post text and save post as image by long tap."; +"PostManager" = "儲存貼文資訊"; +"PostManagerDesc" = "長按可以複製貼文內容或將貼文儲存為圖片"; "SavePostImage" = "儲存社群貼文圖片"; "SavePostImageDesc" = "長按社群貼文圖片儲存到照片應用"; "SaveProfilePhoto" = "儲存個人檔案照片"; "SaveProfilePhotoDesc" = "長按個人檔案照片儲存到照片應用"; -"CopyCommentText" = "複製評論文字"; -"CopyCommentTextDesc" = "長按評論文字複製到剪貼簿"; +"CommentManager" = "Save comment information"; +"CommentManagerDesc" = "Allows to copy comment text and save comment as image by long tap."; "FixAlbums" = "修復封面"; "FixAlbumsDesc" = "為俄羅斯使用者修復封面顯示問題"; "RemovePlayNext" = "移除「播放下一個」"; @@ -206,9 +206,12 @@ "SelectAction" = "選擇動作"; "CopyTitle" = "複製標題"; "CopyDescription" = "複製說明"; -"CopyPostText" = "Copy post text"; -"SavePostAsImage" = "Save post as image"; -"CopyPostAsImage" = "Copy post as image"; +"CopyPostText" = "複製貼文內容"; +"SavePostAsImage" = "貼文儲存為圖片"; +"CopyPostAsImage" = "複製貼文為圖片"; +"CopyCommentText" = "Copy comment text"; +"SaveCommentAsImage" = "Save comment as image"; +"CopyCommentAsImage" = "Copy comment as image"; "Cancel" = "取消"; "Copied" = "已複製到剪貼簿"; "Saved" = "已儲存到照片應用"; diff --git a/packages/com.dvntm.ytlite_2.6.3_iphoneos-arm.deb b/packages/com.dvntm.ytlite_2.6.3_iphoneos-arm.deb new file mode 100644 index 0000000..7bc9e10 Binary files /dev/null and b/packages/com.dvntm.ytlite_2.6.3_iphoneos-arm.deb differ diff --git a/packages/com.dvntm.ytlite_2.6.3_iphoneos-arm64.deb b/packages/com.dvntm.ytlite_2.6.3_iphoneos-arm64.deb new file mode 100644 index 0000000..315c1fd Binary files /dev/null and b/packages/com.dvntm.ytlite_2.6.3_iphoneos-arm64.deb differ