mirror of
https://github.com/yattee/yattee.git
synced 2025-12-12 19:18:16 +00:00
Compare commits
44 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eb1dfe69cd | ||
|
|
9f5720d393 | ||
|
|
675db6f651 | ||
|
|
fb5e86c2cb | ||
|
|
d384a4c520 | ||
|
|
6994271eca | ||
|
|
ed5fa8e4aa | ||
|
|
cbdf295d67 | ||
|
|
5d78946320 | ||
|
|
84fdc22861 | ||
|
|
a57645f824 | ||
|
|
e78f40c555 | ||
|
|
23f5fc9575 | ||
|
|
fc7a7b085f | ||
|
|
7ffa34b0f9 | ||
|
|
177e28121b | ||
|
|
68a35b8804 | ||
|
|
9ec9a680a6 | ||
|
|
7629931747 | ||
|
|
afb22e6c25 | ||
|
|
052fc86388 | ||
|
|
4de51f29c8 | ||
|
|
d1a1f4da38 | ||
|
|
d1153ed97d | ||
|
|
1c356560d5 | ||
|
|
bbd18d921b | ||
|
|
9e4860d97c | ||
|
|
50d42f721f | ||
|
|
9bfccb49e3 | ||
|
|
919126f9b0 | ||
|
|
d00903569f | ||
|
|
25e7b0d3e1 | ||
|
|
2aafe33417 | ||
|
|
e525f36824 | ||
|
|
5a5f5a8696 | ||
|
|
45d2968d9e | ||
|
|
c3e1465f31 | ||
|
|
df47ffb013 | ||
|
|
8900f96ce7 | ||
|
|
ed69780d52 | ||
|
|
691a3305e7 | ||
|
|
987f6dcac8 | ||
|
|
1113a94d67 | ||
|
|
8c6fc7d561 |
15
CHANGELOG.md
15
CHANGELOG.md
@@ -1,3 +1,14 @@
|
||||
## Build 168
|
||||
## Build 170
|
||||
* Description is collapsible with a button
|
||||
* Links in description are clickable on macOS
|
||||
* Aspect ratio is honored on resize on macOS
|
||||
* Added support for private Invidious instances
|
||||
* Updated dependencies
|
||||
|
||||
**Big thanks to [@stonerl](https://github.com/stonerl) for these contributions!**
|
||||
**And to all other project contributors!**
|
||||
|
||||
## Previous builds
|
||||
* Fixed issue where Piped login token would not refresh
|
||||
* Update dependencies
|
||||
* Fixed issue with MPV subtitles not working
|
||||
* Other minor changes and improvements
|
||||
|
||||
40
Gemfile.lock
40
Gemfile.lock
@@ -7,21 +7,21 @@ GEM
|
||||
public_suffix (>= 2.0.2, < 6.0)
|
||||
artifactory (3.0.15)
|
||||
atomos (0.1.3)
|
||||
aws-eventstream (1.2.0)
|
||||
aws-partitions (1.840.0)
|
||||
aws-sdk-core (3.185.1)
|
||||
aws-eventstream (1.3.0)
|
||||
aws-partitions (1.856.0)
|
||||
aws-sdk-core (3.188.0)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
aws-partitions (~> 1, >= 1.651.0)
|
||||
aws-sigv4 (~> 1.5)
|
||||
jmespath (~> 1, >= 1.6.1)
|
||||
aws-sdk-kms (1.72.0)
|
||||
aws-sdk-core (~> 3, >= 3.184.0)
|
||||
aws-sdk-kms (1.73.0)
|
||||
aws-sdk-core (~> 3, >= 3.188.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-s3 (1.136.0)
|
||||
aws-sdk-core (~> 3, >= 3.181.0)
|
||||
aws-sdk-s3 (1.139.0)
|
||||
aws-sdk-core (~> 3, >= 3.188.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.6)
|
||||
aws-sigv4 (1.6.0)
|
||||
aws-sigv4 (1.7.0)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
babosa (1.0.4)
|
||||
claide (1.1.0)
|
||||
@@ -32,8 +32,7 @@ GEM
|
||||
declarative (0.0.20)
|
||||
digest-crc (0.6.5)
|
||||
rake (>= 12.0.0, < 14.0.0)
|
||||
domain_name (0.5.20190701)
|
||||
unf (>= 0.0.5, < 1.0.0)
|
||||
domain_name (0.6.20231109)
|
||||
dotenv (2.8.1)
|
||||
emoji_regex (3.2.3)
|
||||
excon (0.104.0)
|
||||
@@ -66,7 +65,7 @@ GEM
|
||||
faraday_middleware (1.2.0)
|
||||
faraday (~> 1.0)
|
||||
fastimage (2.2.7)
|
||||
fastlane (2.216.0)
|
||||
fastlane (2.217.0)
|
||||
CFPropertyList (>= 2.3, < 4.0.0)
|
||||
addressable (>= 2.8, < 3.0.0)
|
||||
artifactory (~> 3.0)
|
||||
@@ -107,9 +106,9 @@ GEM
|
||||
xcpretty (~> 0.3.0)
|
||||
xcpretty-travis-formatter (>= 0.0.3)
|
||||
gh_inspector (1.1.3)
|
||||
google-apis-androidpublisher_v3 (0.51.0)
|
||||
google-apis-androidpublisher_v3 (0.53.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-apis-core (0.11.1)
|
||||
google-apis-core (0.11.2)
|
||||
addressable (~> 2.5, >= 2.5.1)
|
||||
googleauth (>= 0.16.2, < 2.a)
|
||||
httpclient (>= 2.8.1, < 3.a)
|
||||
@@ -122,19 +121,19 @@ GEM
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-apis-playcustomapp_v1 (0.13.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-apis-storage_v1 (0.19.0)
|
||||
google-apis-core (>= 0.9.0, < 2.a)
|
||||
google-apis-storage_v1 (0.29.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-cloud-core (1.6.0)
|
||||
google-cloud-env (~> 1.0)
|
||||
google-cloud-errors (~> 1.0)
|
||||
google-cloud-env (1.6.0)
|
||||
faraday (>= 0.17.3, < 3.0)
|
||||
google-cloud-errors (1.3.1)
|
||||
google-cloud-storage (1.44.0)
|
||||
google-cloud-storage (1.45.0)
|
||||
addressable (~> 2.8)
|
||||
digest-crc (~> 0.4)
|
||||
google-apis-iamcredentials_v1 (~> 0.1)
|
||||
google-apis-storage_v1 (~> 0.19.0)
|
||||
google-apis-storage_v1 (~> 0.29.0)
|
||||
google-cloud-core (~> 1.6)
|
||||
googleauth (>= 0.16.2, < 2.a)
|
||||
mini_mime (~> 1.0)
|
||||
@@ -160,8 +159,8 @@ GEM
|
||||
optparse (0.1.1)
|
||||
os (1.1.4)
|
||||
plist (3.7.0)
|
||||
public_suffix (5.0.3)
|
||||
rake (13.0.6)
|
||||
public_suffix (5.0.4)
|
||||
rake (13.1.0)
|
||||
representable (3.2.0)
|
||||
declarative (< 0.1.0)
|
||||
trailblazer-option (>= 0.1.1, < 0.2.0)
|
||||
@@ -189,9 +188,6 @@ GEM
|
||||
tty-spinner (0.9.3)
|
||||
tty-cursor (~> 0.7)
|
||||
uber (0.1.0)
|
||||
unf (0.1.4)
|
||||
unf_ext
|
||||
unf_ext (0.0.8.2)
|
||||
unicode-display_width (2.5.0)
|
||||
webrick (1.8.1)
|
||||
word_wrap (1.0.0)
|
||||
|
||||
@@ -105,6 +105,7 @@ extension PlayerModel {
|
||||
|
||||
func playerAPI(_ video: Video) -> VideosAPI? {
|
||||
guard let url = video.instanceURL else { return accounts.api }
|
||||
if accounts.current?.url == url { return accounts.api }
|
||||
switch video.app {
|
||||
case .local:
|
||||
return nil
|
||||
|
||||
@@ -147,6 +147,7 @@ extension Defaults.Keys {
|
||||
static let expandVideoDescriptionDefault = true
|
||||
#endif
|
||||
static let expandVideoDescription = Key<Bool>("expandVideoDescription", default: expandVideoDescriptionDefault)
|
||||
static let collapsedLinesDescription = Key<Int>("collapsedLinesDescription", default: 5)
|
||||
|
||||
static let showChannelAvatarInChannelsLists = Key<Bool>("showChannelAvatarInChannelsLists", default: true)
|
||||
static let showChannelAvatarInVideosListing = Key<Bool>("showChannelAvatarInVideosListing", default: true)
|
||||
|
||||
@@ -6,11 +6,10 @@ import Foundation
|
||||
import SwiftUI
|
||||
|
||||
struct VideoDescription: View {
|
||||
static let collapsedLines = 5
|
||||
|
||||
private var search: SearchModel { .shared }
|
||||
@Default(.showKeywords) private var showKeywords
|
||||
@Default(.expandVideoDescription) private var expandVideoDescription
|
||||
@Default(.collapsedLinesDescription) private var collapsedLinesDescription
|
||||
|
||||
var video: Video
|
||||
var detailsSize: CGSize?
|
||||
@@ -21,56 +20,58 @@ struct VideoDescription: View {
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
Group {
|
||||
if !expandVideoDescription && !expand {
|
||||
Button {
|
||||
expand = true
|
||||
} label: {
|
||||
descriptionView
|
||||
}
|
||||
.buttonStyle(.plain)
|
||||
} else {
|
||||
descriptionView
|
||||
}
|
||||
}
|
||||
.id(video.videoID)
|
||||
descriptionView.id(video.videoID)
|
||||
}
|
||||
|
||||
var descriptionView: some View {
|
||||
VStack {
|
||||
#if os(iOS)
|
||||
ActiveLabelDescriptionRepresentable(
|
||||
description: description,
|
||||
detailsSize: detailsSize,
|
||||
expand: shouldExpand
|
||||
)
|
||||
#else
|
||||
textDescription
|
||||
#endif
|
||||
@ViewBuilder var descriptionView: some View {
|
||||
if !expand && collapsedLinesDescription == 0 {
|
||||
EmptyView()
|
||||
} else {
|
||||
VStack {
|
||||
#if os(iOS)
|
||||
ActiveLabelDescriptionRepresentable(
|
||||
description: description,
|
||||
detailsSize: detailsSize,
|
||||
expand: expand
|
||||
)
|
||||
#else
|
||||
textDescription
|
||||
#endif
|
||||
|
||||
keywords
|
||||
keywords
|
||||
}
|
||||
.contentShape(Rectangle())
|
||||
.overlay(
|
||||
Group {
|
||||
#if canImport(UIKit)
|
||||
if !expand {
|
||||
Button(action: { expand.toggle() }) {
|
||||
Rectangle()
|
||||
.foregroundColor(.clear)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
)
|
||||
}
|
||||
.contentShape(Rectangle())
|
||||
}
|
||||
|
||||
var shouldExpand: Bool {
|
||||
expandVideoDescription || expand
|
||||
expand
|
||||
}
|
||||
|
||||
@ViewBuilder var textDescription: some View {
|
||||
#if !os(iOS)
|
||||
#if canImport(AppKit)
|
||||
Group {
|
||||
if #available(macOS 12, *) {
|
||||
Text(description)
|
||||
DescriptionWithLinks(description: description, detailsSize: detailsSize)
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
.lineLimit(shouldExpand ? 500 : Self.collapsedLines)
|
||||
#if !os(tvOS)
|
||||
.lineLimit(shouldExpand ? 500 : collapsedLinesDescription)
|
||||
.textSelection(.enabled)
|
||||
#endif
|
||||
} else {
|
||||
Text(description)
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
.lineLimit(shouldExpand ? 500 : Self.collapsedLines)
|
||||
.lineLimit(shouldExpand ? 500 : collapsedLinesDescription)
|
||||
}
|
||||
}
|
||||
.multilineTextAlignment(.leading)
|
||||
@@ -79,6 +80,33 @@ struct VideoDescription: View {
|
||||
#endif
|
||||
}
|
||||
|
||||
// If possibe convert URLs to clickable links
|
||||
#if canImport(AppKit)
|
||||
@available(macOS 12, *)
|
||||
struct DescriptionWithLinks: View {
|
||||
let description: String
|
||||
let detailsSize: CGSize?
|
||||
let separators = CharacterSet(charactersIn: " \n")
|
||||
|
||||
var formattedString: AttributedString {
|
||||
var attrString = AttributedString(description)
|
||||
let words = description.unicodeScalars.split(whereSeparator: separators.contains).map(String.init)
|
||||
words.forEach { word in
|
||||
if word.hasPrefix("https://") || word.hasPrefix("http://"), let url = URL(string: String(word)) {
|
||||
if let range = attrString.range(of: word) {
|
||||
attrString[range].link = url
|
||||
}
|
||||
}
|
||||
}
|
||||
return attrString
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
Text(formattedString)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@ViewBuilder var keywords: some View {
|
||||
if showKeywords {
|
||||
ScrollView(.horizontal, showsIndicators: showScrollIndicators) {
|
||||
@@ -109,7 +137,7 @@ struct VideoDescription: View {
|
||||
}
|
||||
|
||||
var showScrollIndicators: Bool {
|
||||
#if os(macOS)
|
||||
#if canImport(AppKit)
|
||||
false
|
||||
#else
|
||||
true
|
||||
@@ -127,6 +155,8 @@ struct VideoDescription: View {
|
||||
|
||||
@Environment(\.openURL) private var openURL
|
||||
|
||||
@Default(.collapsedLinesDescription) private var collapsedLinesDescription
|
||||
|
||||
var player = PlayerModel.shared
|
||||
|
||||
func makeUIView(context _: Context) -> some UIView {
|
||||
@@ -160,7 +190,12 @@ struct VideoDescription: View {
|
||||
}
|
||||
|
||||
func updateNumberOfLines() {
|
||||
label.numberOfLines = expand ? 0 : VideoDescription.collapsedLines
|
||||
if expand || collapsedLinesDescription > 0 {
|
||||
label.numberOfLines = expand ? 0 : collapsedLinesDescription
|
||||
label.isHidden = false
|
||||
} else {
|
||||
label.isHidden = true
|
||||
}
|
||||
}
|
||||
|
||||
func urlTapHandler(_ url: URL) {
|
||||
|
||||
@@ -243,6 +243,9 @@ struct VideoDetails: View {
|
||||
}
|
||||
})
|
||||
.background(colorScheme == .dark ? Color.black : .white)
|
||||
.onAppear {
|
||||
descriptionExpanded = expandVideoDescription
|
||||
}
|
||||
}
|
||||
|
||||
#if os(iOS)
|
||||
@@ -407,18 +410,34 @@ struct VideoDetails: View {
|
||||
}
|
||||
|
||||
var descriptionHeader: some View {
|
||||
HStack {
|
||||
Text("Description".localized())
|
||||
|
||||
if !expandVideoDescription, !descriptionExpanded {
|
||||
Spacer()
|
||||
Image(systemName: "arrow.up.and.down")
|
||||
.imageScale(.small)
|
||||
#if canImport(UIKit)
|
||||
Button(action: {
|
||||
descriptionExpanded.toggle()
|
||||
}) {
|
||||
HStack {
|
||||
Text("Description".localized())
|
||||
Spacer()
|
||||
Image(systemName: descriptionExpanded ? "chevron.up" : "chevron.down")
|
||||
.imageScale(.small)
|
||||
}
|
||||
.padding(.horizontal)
|
||||
.font(.caption)
|
||||
.foregroundColor(.secondary)
|
||||
}
|
||||
}
|
||||
.padding(.horizontal)
|
||||
.font(.caption)
|
||||
.foregroundColor(.secondary)
|
||||
#elseif canImport(AppKit)
|
||||
HStack {
|
||||
Text("Description".localized())
|
||||
Spacer()
|
||||
Button { descriptionExpanded.toggle()
|
||||
} label: {
|
||||
Image(systemName: descriptionExpanded ? "chevron.up" : "chevron.down")
|
||||
.imageScale(.small)
|
||||
}
|
||||
}
|
||||
.padding(.horizontal)
|
||||
.font(.caption)
|
||||
.foregroundColor(.secondary)
|
||||
#endif
|
||||
}
|
||||
|
||||
var chaptersHeader: some View {
|
||||
|
||||
@@ -27,10 +27,7 @@ struct VideoPlayerSizeModifier: ViewModifier {
|
||||
content
|
||||
.frame(width: geometry.size.width)
|
||||
.frame(maxHeight: maxHeight)
|
||||
|
||||
#if !os(macOS)
|
||||
.aspectRatio(ratio, contentMode: usedAspectRatioContentMode)
|
||||
#endif
|
||||
}
|
||||
|
||||
var ratio: CGFloat? { // swiftlint:disable:this no_cgfloat
|
||||
@@ -46,10 +43,10 @@ struct VideoPlayerSizeModifier: ViewModifier {
|
||||
}
|
||||
|
||||
var usedAspectRatioContentMode: ContentMode {
|
||||
#if os(iOS)
|
||||
fullScreen ? .fill : .fit
|
||||
#else
|
||||
#if os(tvOS)
|
||||
.fit
|
||||
#else
|
||||
fullScreen ? .fill : .fit
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ struct VideoPlayerView: View {
|
||||
static let defaultAspectRatio = 16 / 9.0
|
||||
static var defaultMinimumHeightLeft: Double {
|
||||
#if os(macOS)
|
||||
300
|
||||
335
|
||||
#else
|
||||
200
|
||||
#endif
|
||||
@@ -156,7 +156,7 @@ struct VideoPlayerView: View {
|
||||
.persistentSystemOverlays(!fullScreenPlayer)
|
||||
#endif
|
||||
#if os(macOS)
|
||||
.frame(minWidth: 1100, minHeight: 700)
|
||||
.frame(minWidth: playerSidebar != .never ? 1100 : 650, minHeight: 700)
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ struct PlayerSettings: View {
|
||||
@Default(.showKeywords) private var showKeywords
|
||||
#if !os(tvOS)
|
||||
@Default(.showScrollToTopInComments) private var showScrollToTopInComments
|
||||
@Default(.collapsedLinesDescription) private var collapsedLinesDescription
|
||||
#endif
|
||||
@Default(.expandVideoDescription) private var expandVideoDescription
|
||||
@Default(.pauseOnHidingPlayer) private var pauseOnHidingPlayer
|
||||
@@ -77,6 +78,7 @@ struct PlayerSettings: View {
|
||||
#if !os(tvOS)
|
||||
Section(header: SettingsHeader(text: "Info".localized())) {
|
||||
expandVideoDescriptionToggle
|
||||
collapsedLineDescriptionStepper
|
||||
showChaptersToggle
|
||||
showRelatedToggle
|
||||
#if os(macOS)
|
||||
@@ -194,6 +196,24 @@ struct PlayerSettings: View {
|
||||
Toggle("Open video description expanded", isOn: $expandVideoDescription)
|
||||
}
|
||||
|
||||
#if !os(tvOS)
|
||||
private var collapsedLineDescriptionStepper: some View {
|
||||
LazyVStack {
|
||||
Stepper(value: $collapsedLinesDescription, in: 0 ... 10) {
|
||||
Text("Description preview")
|
||||
#if os(macOS)
|
||||
Spacer()
|
||||
#endif
|
||||
if collapsedLinesDescription == 0 {
|
||||
Text("No preview")
|
||||
} else {
|
||||
Text("\(collapsedLinesDescription) lines")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
private var returnYouTubeDislikeToggle: some View {
|
||||
Toggle("Enable Return YouTube Dislike", isOn: $enableReturnYouTubeDislike)
|
||||
}
|
||||
|
||||
@@ -93,10 +93,10 @@
|
||||
"Player" = "Player";
|
||||
"Charging" = "Aufladen";
|
||||
"Clear" = "Löschen";
|
||||
"Clear Search History..." = "Suchverlauf löschen...";
|
||||
"Clear Search History..." = "Suchverlauf löschen …";
|
||||
"Filter: active" = "Filter: aktiv";
|
||||
"Find Other" = "Andere finden";
|
||||
"Edit..." = "Bearbeiten...";
|
||||
"Edit..." = "Bearbeiten …";
|
||||
|
||||
/* Selected video has just finished playing */
|
||||
"Just watched" = "Kürzlich angesehen";
|
||||
@@ -133,7 +133,7 @@
|
||||
"Are you sure you want to restore default quality profiles?" = "Möchten Sie die Standardqualitätsprofile wirklich wiederherstellen?";
|
||||
"Autoplaying Next" = "Nächstes Element automatisch abspielen";
|
||||
"Based on system color scheme" = "Basierend auf System Farbschema";
|
||||
"Buffering stream..." = "Lädt…";
|
||||
"Buffering stream..." = "Lädt …";
|
||||
"Bugs and great feature ideas can be sent to the GitHub issues tracker. " = "Fehler und tolle Ideen für Funktionen können an den Github Issue Tracker gesendet werden. ";
|
||||
"Categories to Skip" = "Zu überspringende Kategorien";
|
||||
"Close PiP and open player when application enters foreground" = "Schließe Bild-in-Bild und öffne den Player wenn die App in den Vordergrund geholt wird";
|
||||
@@ -167,7 +167,7 @@
|
||||
"Issues Tracker" = "Issues Tracker";
|
||||
"Enter fullscreen in landscape" = "Vollbild im Querformat aufrufen";
|
||||
"Error when accessing playlist" = "Fehler beim Zugriff auf Wiedergabeliste";
|
||||
"Finding something to play..." = "Etwas zu spielen finden...";
|
||||
"Finding something to play..." = "Etwas zu spielen finden …";
|
||||
"Fullscreen size" = "Vollbildgröße";
|
||||
|
||||
/* Video date filter in search */
|
||||
@@ -182,7 +182,7 @@
|
||||
"Large" = "Groß";
|
||||
|
||||
/* Loading stream OSD */
|
||||
"Loading streams..." = "Lädt Streams...";
|
||||
"Loading streams..." = "Lädt Streams …";
|
||||
|
||||
/* Video duration filter in search */
|
||||
"Long" = "Lang";
|
||||
@@ -199,7 +199,7 @@
|
||||
"More info can be found in:" = "Weitere Informationen finden Sie in:";
|
||||
"Movies" = "Filme";
|
||||
"Music" = "Musik";
|
||||
"Loading..." = "Lädt...";
|
||||
"Loading..." = "Lädt …";
|
||||
"Lock portrait mode" = "Hochformatmodus sperren";
|
||||
"Mark as watched" = "Als gesehen markieren";
|
||||
"Mark video as watched after playing" = "Video nach dem Abspielen als angesehen markieren";
|
||||
@@ -210,7 +210,7 @@
|
||||
"Only when signed in" = "Nur wenn Sie eingeloggt sind";
|
||||
|
||||
/* Loading stream OSD */
|
||||
"Opening %@ stream..." = "Öffne %@-stream...";
|
||||
"Opening %@ stream..." = "Öffne %@-stream …";
|
||||
"Connection failed" = "Verbindung fehlgeschlagen";
|
||||
"Continue from %@" = "Ab %@ fortsetzen";
|
||||
"Contributing" = "Beitragen";
|
||||
@@ -227,7 +227,7 @@
|
||||
"I want to ask a question" = "Ich möchte eine Frage stellen";
|
||||
"If you are interested what's coming in future updates, you can track project Milestones." = "Wenn Sie sich für künftige Updates interessieren, können Sie die Meilensteine des Projekts verfolgen.";
|
||||
"Large layout is not suitable for all devices and using it may cause controls not to fit on the screen." = "Das große Layout ist nicht für alle Geräte geeignet und kann dazu führen, dass die Bedienelemente nicht auf den Bildschirm passen.";
|
||||
"Opening audio stream..." = "Audiostream wird geöffnet...";
|
||||
"Opening audio stream..." = "Audiostream wird geöffnet …";
|
||||
"Orientation" = "Ausrichtung";
|
||||
"Playlist \"%@\" will be deleted.\nIt cannot be reverted." = "Die Wiedergabeliste \"%@\" wird gelöscht.\nDies kann nicht rückgängig gemacht werden.";
|
||||
"Preferred Formats" = "Bevorzugte Formate";
|
||||
@@ -248,7 +248,7 @@
|
||||
/* Video sort order in search */
|
||||
"Rating" = "Bewertung";
|
||||
"Settings" = "Einstellungen";
|
||||
"Share..." = "Teilen...";
|
||||
"Share..." = "Teilen …";
|
||||
"Remove from Playlist" = "Aus Wiedergabeliste entfernen";
|
||||
"Remove from the queue" = "Aus der Warteschlange entfernen";
|
||||
"Replies" = "Antworten anzeigen";
|
||||
@@ -257,7 +257,7 @@
|
||||
"Resolution" = "Auflösung";
|
||||
"Restart the app to apply the settings above." = "Starten Sie die App neu, um die Einstellungen zu übernehmen.";
|
||||
"Restart/Play next" = "Von Anfang an/Als Nächstes spielen";
|
||||
"Restore default profiles..." = "Standardprofile wiederherstellen...";
|
||||
"Restore default profiles..." = "Standardprofile wiederherstellen …";
|
||||
"Rotate to portrait when exiting fullscreen" = "Auf Hochformat drehen, wenn der Vollbildmodus beendet wird";
|
||||
"Round corners" = "Runde Ecken";
|
||||
"Switch to public locations" = "Zu öffentlichen Adressen wechseln";
|
||||
@@ -271,10 +271,10 @@
|
||||
|
||||
/* Video sort order in search */
|
||||
"Views" = "Aufrufe";
|
||||
"Watched" = "Beobachtet";
|
||||
"Watched" = "Gesehen";
|
||||
|
||||
/* Selected video was played on given date */
|
||||
"Watched %@" = "Beobachtet %@";
|
||||
"Watched %@" = "%@ gesehen";
|
||||
|
||||
/* Selected video is being played */
|
||||
"Watching now" = "Jetzt anschauen";
|
||||
@@ -309,7 +309,7 @@
|
||||
/* Player controls layout size for TV */
|
||||
"TV" = "Fernsehen";
|
||||
"unknown" = "unbekannt";
|
||||
"Unsubscribe" = "Deabonnieren";
|
||||
"Unsubscribe" = "Abbestellen";
|
||||
"Upload date" = "Uploaddatum";
|
||||
"URL" = "URL";
|
||||
"Wi-Fi" = "Wi-Fi";
|
||||
@@ -357,7 +357,7 @@
|
||||
"Hardware decoder" = "Hardware-Decoder";
|
||||
"Save history of searches, channels and playlists" = "Verlauf von Suchen, Kanälen und Wiedergabelisten speichern";
|
||||
"Search history is empty" = "Suchverlauf ist leer";
|
||||
"Search..." = "Suche...";
|
||||
"Search..." = "Suche …";
|
||||
"Sections" = "Abschnitte";
|
||||
"Seek gesture sensitivity" = "Suchgesten-Sensibilität";
|
||||
"Seek gesture speed" = "Geschwindigkeit der Suchgesten";
|
||||
@@ -427,7 +427,7 @@
|
||||
"Could not refresh Trending" = "Trends kann nicht aktualisiert werden";
|
||||
"Could not open channel" = "Kanal kann nicht geöffnet werden";
|
||||
"This URL could not be opened" = "Diese URL kann nicht geöffnet werden";
|
||||
"Share Logs..." = "Logs teilen…";
|
||||
"Share Logs..." = "Logs teilen …";
|
||||
"Channel could not be found" = "Der Kanal konnte nicht gefunden werden";
|
||||
"Could not refresh Subscriptions" = "Abonnements konnten nicht aktualisiert werden";
|
||||
"If you want this app to be available in your language, join translation project." = "Wenn Sie wünschen, dass diese App auch in Ihrer Sprache verfügbar ist, nehmen Sie am Übersetzungsprojekt teil.";
|
||||
@@ -439,11 +439,11 @@
|
||||
"Show Home" = "Startseite anzeigen";
|
||||
"Video Details" = "Videodetails";
|
||||
"Share files from Finder on a Mac\nor iTunes on Windows" = "Teilen von Dateien über den Finder auf einem Mac\noder iTunes unter Windows";
|
||||
"Recent History" = "Neueste Verlauf";
|
||||
"Recent History" = "Neuester Verlauf";
|
||||
"Show Open Videos toolbar button" = "Schaltfläche \"Videos öffnen\" in der Symbolleiste anzeigen";
|
||||
"Edit Favorites…" = "Favoriten bearbeiten…";
|
||||
"Edit Favorites…" = "Favoriten bearbeiten …";
|
||||
"Show Documents" = "Dokumente anzeigen";
|
||||
"Buttons labels" = "Tasten-Etiketten";
|
||||
"Buttons labels" = "Schaltflächen-Etiketten";
|
||||
"Inspector visibility" = "Sichtbarkeit der Inspector";
|
||||
"Pages toolbar position" = "Position der Seitensymbolleiste";
|
||||
"Clear Queue before opening" = "Warteschlange vor dem Öffnen löschen";
|
||||
@@ -482,7 +482,7 @@
|
||||
"Sample Rate" = "Samplerate";
|
||||
"Files" = "Dateien";
|
||||
"Could not find any links to open in your clipboard" = "Kann keine Links zum Öffnen in Ihrer Zwischenablage finden";
|
||||
"Remove…" = "Entfernen…";
|
||||
"Remove…" = "Entfernen …";
|
||||
"Show Inspector" = "Inspector einblenden";
|
||||
"Actions buttons" = "Aktionsschaltflächen";
|
||||
"Show sidebar" = "Seitenleiste anzeigen";
|
||||
@@ -503,7 +503,7 @@
|
||||
"Verified" = "Verifiziert";
|
||||
"Channel" = "Kanal";
|
||||
"Short videos: visible" = "Kurze Videos: sichtbar";
|
||||
"Player Bar" = "Spielerleiste";
|
||||
"Player Bar" = "Video-Player-Leiste";
|
||||
"Short videos: hidden" = "Kurze Videos: versteckt";
|
||||
"Play all unwatched" = "Alle ungesehen abspielen";
|
||||
"Double tap gesture" = "Doppeltippgeste";
|
||||
@@ -539,7 +539,7 @@
|
||||
"Subscribe/Unsubscribe" = "Abonnieren/abbestellen";
|
||||
"Are you sure you want to clear cache?" = "Möchten Sie den Cache wirklich löschen?";
|
||||
"Single tap gesture" = "Einmalige Antippen-Geste";
|
||||
"Seeking" = "Suchend";
|
||||
"Seeking" = "Suchen";
|
||||
"List" = "Liste";
|
||||
"Cells" = "Zellen";
|
||||
"Show Next in Queue" = "Nächste in Warteschlange anzeigen";
|
||||
@@ -564,12 +564,12 @@
|
||||
"Lock" = "Sperre";
|
||||
"Description" = "Beschreibung";
|
||||
"Seek" = "Suchen";
|
||||
"Enter account credentials to connect..." = "Geben Sie die Kontozugangsdaten ein, um eine Verbindung herzustellen...";
|
||||
"Enter account credentials to connect..." = "Geben Sie die Kontozugangsdaten ein, um eine Verbindung herzustellen …";
|
||||
"Show scroll to top button in comments" = "Schaltfläche Nach oben scrollen in Kommentaren anzeigen";
|
||||
"Enter location address to connect..." = "Geben Sie die Internetadresse ein, um eine Verbindung herzustellen...";
|
||||
"Enter location address to connect..." = "Geben Sie die Internetadresse ein, um eine Verbindung herzustellen …";
|
||||
"Opened File" = "Geöffnete Datei";
|
||||
"File Extension" = "Dateierweiterung";
|
||||
"Opening file..." = "Datei öffnen...";
|
||||
"Opening file..." = "Datei öffnen …";
|
||||
"Close video and player on end" = "Video und Player am Ende beenden";
|
||||
"Use system controls with AVPlayer" = "Systemsteuerung mit AVPlayer verwenden";
|
||||
"Public account" = "Öffentliches Konto";
|
||||
@@ -582,12 +582,12 @@
|
||||
"Available" = "Verfügbar";
|
||||
"Startup section" = "Bereich Startup";
|
||||
"Home Settings" = "Startseite Einstellungen";
|
||||
"Watched: hidden" = "Beobachtet: versteckt";
|
||||
"(watched and shorts hidden)" = "(beobachtet und shorts versteckt)";
|
||||
"Watched: visible" = "Beobachtet: sichtbar";
|
||||
"Watched: hidden" = "Gesehene: versteckt";
|
||||
"(watched and shorts hidden)" = "(gesehene und Shorts versteckt)";
|
||||
"Watched: visible" = "Gesehene: sichtbar";
|
||||
"No videos to show" = "Keine Videos zu zeigen";
|
||||
"(watched hidden)" = "(versteckt beobachtet)";
|
||||
"(shorts hidden)" = "(shorts versteckt)";
|
||||
"(watched hidden)" = "(gesehene versteckt)";
|
||||
"(shorts hidden)" = "(Shorts versteckt)";
|
||||
"Disable filters" = "Filter deaktivieren";
|
||||
"Limit" = "Grenze";
|
||||
"Are you sure you want to remove %@ from Favorites?" = "Möchten Sie %@ wirklich aus den Favoriten entfernen?";
|
||||
@@ -597,3 +597,6 @@
|
||||
"Play Now in AVPlayer" = "Jetzt in AVPlayer abspielen";
|
||||
"Show channel avatars in videos lists" = "Kanal-Avatare in Videolisten anzeigen";
|
||||
"Show channel avatars in channels lists" = "Kanal-Avatare in Kanallisten anzeigen";
|
||||
"Podcasts" = "Podcasts";
|
||||
"Add %@" = "%@ hinzufügen";
|
||||
"Releases" = "Veröffentlichungen";
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
"Are you sure you want to restore default quality profiles?" = "¿Estás seguro de que quieres restablecer los ajustes por defecto de los perfiles de calidad?";
|
||||
"Are you sure you want to unsubscribe from %@?" = "¿Estás seguro de que quieres dejar de estar suscrito a %@?";
|
||||
"Cancel" = "Cancelar";
|
||||
"Autoplaying Next" = "Autorreproducir el siguiente";
|
||||
"Autoplaying Next" = "Autoreproducir el siguiente";
|
||||
"Based on system color scheme" = "Basado en el tema del sistema";
|
||||
"Clear Search History..." = "Limpiar el historial de búsqueda...";
|
||||
"Battery" = "Batería";
|
||||
@@ -116,7 +116,7 @@
|
||||
"Decrease rate" = "Tasa de disminución";
|
||||
"Decreased opacity" = "Opacidad disminuida";
|
||||
"High" = "Alto";
|
||||
"%lld videos" = "%lld vídeos";
|
||||
"%lld videos" = "%lld videos";
|
||||
"Explicit reminders to like, subscribe or interact with them on any paid or free platform(s) (e.g. click on a video)." = "Recordatorios explícitos para marquen \"me gusta\", se suscriban o interactúen con ellos en cualquier plataforma de pago o gratuita (por ejemplo, haciendo clic en un vídeo).";
|
||||
"Formats will be selected in order as listed.\nHLS is an adaptive format (resolution setting does not apply)." = "Los formatos se seleccionarán en orden como se indica.\nHLS es un formato adaptable (no aplica la configuración de resolución).";
|
||||
"Fullscreen size" = "Tamaño de pantalla completa";
|
||||
@@ -169,7 +169,7 @@
|
||||
"Stream & Player" = "Transmisión y reproductor";
|
||||
"Picture in Picture" = "Imagen en imagen";
|
||||
"Visibility" = "Visibilidad";
|
||||
"Edit Favorites…" = "Editar Favoritos...";
|
||||
"Edit Favorites…" = "Editar los favoritos…";
|
||||
"Center" = "Centrar";
|
||||
"Wiki" = "Wiki";
|
||||
"Live Streams" = "Transmisiones en vivo";
|
||||
@@ -250,7 +250,7 @@
|
||||
"Actions buttons" = "Botones de acciones";
|
||||
"Files" = "Archivos";
|
||||
"Sign In Required" = "Inicio de sesión requerido";
|
||||
"Buttons labels" = "Etiquetas de botones";
|
||||
"Buttons labels" = "Etiquetas de los botones";
|
||||
"Next" = "Siguiente";
|
||||
"Default Profile" = "Perfil por defecto";
|
||||
"Paste" = "Pegar";
|
||||
@@ -258,7 +258,7 @@
|
||||
"File" = "Archivo";
|
||||
"Right" = "Derecha";
|
||||
"Reset search filters" = "Restablecer filtros de búsqueda";
|
||||
"Channel" = "Vanal";
|
||||
"Channel" = "Canal";
|
||||
"Open Files" = "Abrir archivos";
|
||||
"You can find information about using Yattee in the Wiki pages." = "Puede encontrar información sobre el uso de Yattee en la Wiki.";
|
||||
"Lock portrait mode" = "Bloquear modo retrato";
|
||||
@@ -266,7 +266,7 @@
|
||||
|
||||
/* Loading stream OSD */
|
||||
"Loading streams..." = "Cargando secuencias...";
|
||||
"Public Locations" = "Ubicaciones Públicas";
|
||||
"Public Locations" = "Ubicaciones públicas";
|
||||
"Yattee" = "Yattee";
|
||||
"No results" = "No hay resultados";
|
||||
"Driver" = "Driver";
|
||||
@@ -397,7 +397,7 @@
|
||||
"Playlist \"%@\" will be deleted.\nIt cannot be reverted." = "Se eliminará la lista de reproducción \"%@\".\nNo se puede revertir.";
|
||||
"Playlists" = "Listas de reproducción";
|
||||
"Popular" = "Popular";
|
||||
"Proxy videos" = "Proxy videos";
|
||||
"Proxy videos" = "Utilizar un proxy para ver los vídeos";
|
||||
"Regular size" = "Tamaño regular";
|
||||
"Related" = "Relacionado";
|
||||
|
||||
@@ -456,7 +456,7 @@
|
||||
"Press and hold remote button to open captions and quality menus" = "Mantenga presionado el botón del control remoto para abrir subtítulos y menús de calidad";
|
||||
"Comments are disabled" = "Los comentarios están deshabilitados";
|
||||
"No comments" = "Sin comentarios";
|
||||
"Share Logs..." = "Compartir registros...";
|
||||
"Share Logs..." = "Compartir registros…";
|
||||
"Open logs in Finder" = "Abrir registros en Finder";
|
||||
"Could not open video" = "No se pudo abrir el video";
|
||||
"Channel could not be found" = "No se pudo encontrar el canal";
|
||||
@@ -481,14 +481,14 @@
|
||||
"Playback" = "Reproducción";
|
||||
"Restart/Play next" = "Reiniciar/Reproducir siguiente";
|
||||
"This cannot be reverted" = "Esto no se puede revertir";
|
||||
"This cannot be reverted. You might need to switch between views or restart the app to see changes." = "Esto no se puede revertir. Es posible que deba cambiar entre vistas o reiniciar la aplicación para ver los cambios";
|
||||
"This cannot be reverted. You might need to switch between views or restart the app to see changes." = "Esto no se puede revertir. Es posible que deba cambiar entre vistas o reiniciar la aplicación para ver los cambios.";
|
||||
"Could not open channel" = "No se pudo abrir el canal";
|
||||
"Recent History" = "Historial reciente";
|
||||
"Share files from Finder on a Mac\nor iTunes on Windows" = "Comparta archivos desde Finder en una Mac\no iTunes en Windows";
|
||||
"Pages toolbar position" = "Posición de la barra de herramientas de páginas";
|
||||
"Video actions buttons" = "Botones de acciones de video";
|
||||
"Video" = "Video";
|
||||
"Show Open Videos toolbar button" = "Mostrar el botón de la barra de herramientas Abrir videos";
|
||||
"Show Open Videos toolbar button" = "Mostrar el botón de los vídeos abiertos en la barra de herramientas";
|
||||
"Show Documents" = "Mostrar documentos";
|
||||
"Clear Queue before opening" = "Borrar cola antes de abrir";
|
||||
"Open" = "Abrir";
|
||||
@@ -498,21 +498,105 @@
|
||||
"Audio" = "Audio";
|
||||
"Codec" = "Codec";
|
||||
"Size" = "Tamaño";
|
||||
"Remove…" = "Eliminar...";
|
||||
"Remove…" = "Eliminar…";
|
||||
"Playback history is empty" = "El historial de reproducción está vacío";
|
||||
"Copy%@link" = "Copiar%@enlace";
|
||||
"Share%@link" = "Compartir%@enlace";
|
||||
"Open expanded" = "Abrir maximizada";
|
||||
"Single tap gesture" = "Gesto con un solo toque";
|
||||
"Open expanded" = "Abrir maximizado";
|
||||
"Single tap gesture" = "Gesto de un solo toque";
|
||||
"Right click channel thumbnail to open context menu with more actions" = "Haz clic con el botón derecho en la miniatura del canal para abrir el menú contextual con más acciones";
|
||||
"Short videos: visible" = "Vídeos cortos: visibles";
|
||||
"Short videos: visible" = "Videos cortos: visible";
|
||||
"Tap and hold channel thumbnail to open context menu with more actions" = "Mantén pulsada la miniatura del canal para abrir el menú contextual con más acciones";
|
||||
"Maximum width expanded" = "Ancho máximo ampliado";
|
||||
"Short videos: hidden" = "Vídeos cortos: ocultos";
|
||||
"Maximum width expanded" = "Ancho máximo expandido";
|
||||
"Short videos: hidden" = "Videos cortos: oculto";
|
||||
"Clear all" = "Borrar todo";
|
||||
"Always show controls buttons" = "Mostrar siempre los botones de control";
|
||||
"Mark channel feed as unwatched" = "Marcar el canal como no visto";
|
||||
"Mark channel feed as unwatched" = "Marcar el feed del canal como no visto";
|
||||
"Play all unwatched" = "Reproducir todo lo no visto";
|
||||
"Mark channel feed as watched" = "Marcar el canal como visto";
|
||||
"Double tap gesture" = "Doble toque";
|
||||
"Mark channel feed as watched" = "Marcar el feed del canal como visto";
|
||||
"Double tap gesture" = "Gesto de doble toque";
|
||||
"Player Bar" = "Barra del reproductor";
|
||||
"Controls Buttons" = "Botones de control";
|
||||
"Seeking" = "Buscando";
|
||||
"Total size: %@" = "Tamaño total: %@";
|
||||
"Gesture: backwards" = "Gesto: atrás";
|
||||
"Gesture: fowards" = "Gesto: adelante";
|
||||
"System controls" = "Controles del sistema";
|
||||
"Close video" = "Cerrar vídeo";
|
||||
"Controls button: backwards" = "Botón de control: hacia atrás";
|
||||
"Controls button: forwards" = "Botón de control: hacia delante";
|
||||
"Show unwatched feed badges" = "Mostrar insignias de feeds no vistos";
|
||||
"Gesture settings control skipping interval for double tap gesture on left/right side of the player. Changing system controls settings requires restart." = "Los ajustes de los gestos controlan el intervalo de salto para el gesto de doble toque en el lado izquierdo/derecho del reproductor. Para cambiar los ajustes de los controles del sistema es necesario reiniciar.";
|
||||
"Gesture settings control skipping interval for double click on left/right side of the player. Changing system controls settings requires restart." = "Los ajustes gestuales controlan el intervalo de salto para el doble clic en el lado izquierdo/derecho del reproductor. Para cambiar la configuración de los controles del sistema es necesario reiniciar.";
|
||||
"Open channels with description expanded" = "Canales abiertos con la descripción ampliada";
|
||||
"Subscribe/Unsubscribe" = "Suscribirse/Desuscribirse";
|
||||
"Are you sure you want to clear cache?" = "¿Seguro que quieres borrar la caché?";
|
||||
"Lock orientation" = "Bloquear orientación";
|
||||
"Cache" = "Cache";
|
||||
"Actions Buttons" = "Botones de Acción";
|
||||
"Music Mode" = "Modo Música";
|
||||
"Play next item" = "Reproducir siguiente elemento";
|
||||
"Gesture settings control skipping interval for remote arrow buttons (for 2nd generation Siri Remote or newer). Changing system controls settings requires restart." = "Los ajustes gestuales controlan el intervalo del salto de los botones de la flecha del mando a distancia (para Siri Remote de 2ª generación o posterior). Para cambiar los ajustes de los controles del sistema es necesario reiniciar.";
|
||||
"Show cache status" = "Mostrar estado de cache";
|
||||
"Show Next in Queue" = "Mostrar el siguiente en la cola";
|
||||
"Hide player" = "Ocultar al jugador";
|
||||
"Toggle player" = "Alternar el reproductor";
|
||||
"Inspector" = "Inspector";
|
||||
"Playback Settings" = "Ajustes de la reproducción";
|
||||
"Show toggle watch status button" = "Mostrar el botón para alternar estado de la visualización";
|
||||
"Queue - shuffled" = "Cola - aleatoria";
|
||||
"Cells" = "Celdas";
|
||||
"Do nothing" = "No hacer nada";
|
||||
"Next in Queue" = "Siguiente en la cola";
|
||||
"Open video description expanded" = "Abrir la descripción del vídeo ampliada";
|
||||
"Mark all as unwatched" = "Marcar todo como no visto";
|
||||
"Mark all as watched" = "Marcar todo como visto";
|
||||
"List" = "Lista";
|
||||
"Toggle size" = "Alternar el tamaño";
|
||||
"Open channel" = "Abrir el canal";
|
||||
"Feed" = "Feed";
|
||||
"Available" = "Disponible";
|
||||
"Loop one" = "Bucle uno";
|
||||
"Use system controls with AVPlayer" = "Utilizar los controles del sistema con AVPlayer";
|
||||
"Opening file..." = "Abriendo el archivo...";
|
||||
"No videos to show" = "No hay vídeos que mostrar";
|
||||
"Autoplay next" = "Reproducir automáticamente la siguiente";
|
||||
"Home Settings" = "Ajustes iniciales";
|
||||
"Watched: visible" = "Visto: visible";
|
||||
"Fullscreen" = "A pantalla completa";
|
||||
"Seek" = "Buscar";
|
||||
"Landscape left" = "Apaisado a la izquierda";
|
||||
"(watched and shorts hidden)" = "(ocultar videos reproducidos y cortos)";
|
||||
"Rotate when entering fullscreen on landscape video" = "Rotar al entrar en pantalla completa en un vídeo apaisado";
|
||||
"Enter account credentials to connect..." = "Introduce las credenciales de la cuenta para conectarte...";
|
||||
"Watched: hidden" = "Visto: oculto";
|
||||
"Stream" = "Stream";
|
||||
"Replay" = "Repetir";
|
||||
"(watched hidden)" = "(ocultar lo reproducido)";
|
||||
"Show scroll to top button in comments" = "Mostrar el botón de desplazamiento hacia arriba en los comentarios";
|
||||
"Enter location address to connect..." = "Introduzca la dirección para conectarse...";
|
||||
"File Extension" = "Extensión del archivo";
|
||||
"Opened File" = "Archivo abierto";
|
||||
"Public account" = "Cuenta pública";
|
||||
"Lock" = "Bloquear";
|
||||
"No rotation" = "Sin rotación";
|
||||
"Startup section" = "Sección de inicio";
|
||||
"Browse without account" = "Navegar sin cuenta";
|
||||
"Close video and player on end" = "Cerrar el vídeo y el reproductor al final";
|
||||
"Landscape right" = "Apaisado a la derecha";
|
||||
"Your Accounts" = "Tus cuentas";
|
||||
"Description" = "Descripción";
|
||||
"Maximum feed items" = "Número máximo de elementos en el feed";
|
||||
"Are you sure you want to remove %@ from Favorites?" = "¿Estás seguro de que quieres eliminar %@ de favoritos?";
|
||||
"Limit" = "Límite";
|
||||
"Keep channels with unwatched videos on top of subscriptions list" = "Mantén los canales con los vídeos sin ver en la parte superior de la lista de suscripciones";
|
||||
"(shorts hidden)" = "(cortos ocultos)";
|
||||
"Disable filters" = "Desactivar los filtros";
|
||||
"Podcasts" = "Podcasts";
|
||||
"Releases" = "Lanzamientos";
|
||||
"Show channel avatars in channels lists" = "Mostrar los avatares de los canales en las listas de los canales";
|
||||
"Play Now in MPV" = "Reproducir ahora en MPV";
|
||||
"Show channel avatars in videos lists" = "Mostrar los avatares de los canales en las listas de los vídeos";
|
||||
"Add %@" = "Añada %@";
|
||||
"Show video context menu options to force selected backend" = "Mostrar las opciones del menú contextual del vídeo para forzar el backend seleccionado";
|
||||
"Play Now in AVPlayer" = "Reproducir ahora en AVPlayer";
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
"Not available" = "利用できません";
|
||||
|
||||
/* SponsorBlock category name */
|
||||
"Offtopic in Music Videos" = "音楽動画の脱線した内容";
|
||||
"Offtopic in Music Videos" = "音楽動画の非音楽部分";
|
||||
"Only when signed in" = "ログイン時のみ";
|
||||
"Orientation" = "向き";
|
||||
"Opening audio stream..." = "音声ストリーム 開始中...";
|
||||
@@ -487,13 +487,13 @@
|
||||
"Category" = "分類";
|
||||
|
||||
/* SponsorBlock category name */
|
||||
"Interaction" = "操作の要求";
|
||||
"Interaction" = "操作の依頼";
|
||||
|
||||
/* SponsorBlock category name */
|
||||
"Self-promotion" = "自己宣伝";
|
||||
"Quality" = "品質";
|
||||
"Are you sure you want to clear search history?" = "検索履歴を消去しますか?";
|
||||
"For videos which feature music as the primary content." = "音楽を主なコンテンツとする動画用です。";
|
||||
"For videos which feature music as the primary content." = "音楽が主な内容の動画が対象です。";
|
||||
"Always use AVPlayer for live videos" = "ライブ配信には常に AVPlayer を使用";
|
||||
"Clear Search History" = "検索履歴を消去";
|
||||
"Disabled" = "無効化";
|
||||
|
||||
@@ -3801,7 +3801,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = "Open in Yattee/Open in Yattee.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
CURRENT_PROJECT_VERSION = 170;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = "Open in Yattee/Info.plist";
|
||||
INFOPLIST_KEY_CFBundleDisplayName = "Open in Yattee";
|
||||
@@ -3832,7 +3832,7 @@
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
CURRENT_PROJECT_VERSION = 170;
|
||||
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 78Z5H3M6RJ;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = "Open in Yattee/Info.plist";
|
||||
@@ -3863,7 +3863,7 @@
|
||||
buildSettings = {
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
CURRENT_PROJECT_VERSION = 170;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||
MACOSX_DEPLOYMENT_TARGET = 11.0;
|
||||
@@ -3883,7 +3883,7 @@
|
||||
buildSettings = {
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
CURRENT_PROJECT_VERSION = 170;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||
MACOSX_DEPLOYMENT_TARGET = 11.0;
|
||||
@@ -4047,7 +4047,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = "iOS/Yattee (iOS).entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
CURRENT_PROJECT_VERSION = 170;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
@@ -4100,7 +4100,7 @@
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
CURRENT_PROJECT_VERSION = 170;
|
||||
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 78Z5H3M6RJ;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "GLES_SILENCE_DEPRECATION=1";
|
||||
@@ -4152,7 +4152,7 @@
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
CURRENT_PROJECT_VERSION = 170;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
ENABLE_APP_SANDBOX = YES;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
@@ -4191,7 +4191,7 @@
|
||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
CURRENT_PROJECT_VERSION = 170;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
"DEVELOPMENT_TEAM[sdk=macosx*]" = 78Z5H3M6RJ;
|
||||
ENABLE_APP_SANDBOX = YES;
|
||||
@@ -4226,7 +4226,7 @@
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
CURRENT_PROJECT_VERSION = 170;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
@@ -4250,7 +4250,7 @@
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
CURRENT_PROJECT_VERSION = 170;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
@@ -4276,7 +4276,7 @@
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
CURRENT_PROJECT_VERSION = 170;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
@@ -4301,7 +4301,7 @@
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
CURRENT_PROJECT_VERSION = 170;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
@@ -4327,7 +4327,7 @@
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
CURRENT_PROJECT_VERSION = 170;
|
||||
DEVELOPMENT_ASSET_PATHS = "";
|
||||
ENABLE_PREVIEWS = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
@@ -4367,7 +4367,7 @@
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "iPhone Distribution";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
CURRENT_PROJECT_VERSION = 170;
|
||||
DEVELOPMENT_ASSET_PATHS = "";
|
||||
"DEVELOPMENT_TEAM[sdk=appletvos*]" = 78Z5H3M6RJ;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
@@ -4408,7 +4408,7 @@
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
CURRENT_PROJECT_VERSION = 170;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@@ -4432,7 +4432,7 @@
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
CURRENT_PROJECT_VERSION = 170;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@@ -4742,8 +4742,8 @@
|
||||
isa = XCRemoteSwiftPackageReference;
|
||||
repositoryURL = "https://github.com/cxfksword/MPVKit.git";
|
||||
requirement = {
|
||||
kind = upToNextMajorVersion;
|
||||
minimumVersion = 0.35.1;
|
||||
branch = main;
|
||||
kind = branch;
|
||||
};
|
||||
};
|
||||
/* End XCRemoteSwiftPackageReference section */
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/Alamofire/Alamofire.git",
|
||||
"state" : {
|
||||
"revision" : "b2fa556e4e48cbf06cf8c63def138c98f4b811fa",
|
||||
"version" : "5.8.0"
|
||||
"revision" : "3dc6a42c7727c49bf26508e29b0a0b35f9c7e1ad",
|
||||
"version" : "5.8.1"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -42,7 +42,7 @@
|
||||
"location" : "https://github.com/kishikawakatsumi/KeychainAccess.git",
|
||||
"state" : {
|
||||
"branch" : "master",
|
||||
"revision" : "ecb18d8ce4d88277cc4fb103973352d91e18c535"
|
||||
"revision" : "e0c7eebc5a4465a3c4680764f26b7a61f567cdaf"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -59,8 +59,8 @@
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/cxfksword/MPVKit.git",
|
||||
"state" : {
|
||||
"revision" : "96825b3dc2b38e5550268156148d47798ce6aa74",
|
||||
"version" : "0.36.0"
|
||||
"branch" : "main",
|
||||
"revision" : "dca1e345a26d09a3d621d7656a94e6427f3f7b83"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -105,7 +105,7 @@
|
||||
"location" : "https://github.com/SDWebImage/SDWebImage",
|
||||
"state" : {
|
||||
"branch" : "master",
|
||||
"revision" : "7550aa759c8d57800f7fdb3d17272a232b05e8cb"
|
||||
"revision" : "191b94cd545274603fcffce275dd4c1247587b6e"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -131,8 +131,8 @@
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/SDWebImage/SDWebImageWebPCoder.git",
|
||||
"state" : {
|
||||
"revision" : "b442fafefeee8d3f489e33e69e0bb9407deb4757",
|
||||
"version" : "0.14.0"
|
||||
"revision" : "db4603921b31a6ce0f8c26d36d6a3fffc2dba481",
|
||||
"version" : "0.14.2"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user