mirror of
https://github.com/yattee/yattee.git
synced 2024-12-12 21:30:32 +05:30
Localizations
This commit is contained in:
parent
2d51f6adff
commit
b66e177114
7
Extensions/String+Localizable.swift
Normal file
7
Extensions/String+Localizable.swift
Normal file
@ -0,0 +1,7 @@
|
||||
import Foundation
|
||||
|
||||
extension String {
|
||||
func localized(_ comment: String = "") -> Self {
|
||||
NSLocalizedString(self, tableName: "Localizable", bundle: .main, comment: comment)
|
||||
}
|
||||
}
|
@ -42,7 +42,7 @@ struct Instance: Defaults.Serializable, Hashable, Identifiable {
|
||||
}
|
||||
|
||||
var anonymousAccount: Account {
|
||||
Account(instanceID: id, name: "Anonymous", url: apiURL, anonymous: true)
|
||||
Account(instanceID: id, name: "Anonymous".localized(), url: apiURL, anonymous: true)
|
||||
}
|
||||
|
||||
var urlComponents: URLComponents {
|
||||
|
@ -10,7 +10,7 @@ final class SearchQuery: ObservableObject {
|
||||
}
|
||||
|
||||
var name: String {
|
||||
rawValue.capitalized
|
||||
rawValue.capitalized.localized()
|
||||
}
|
||||
}
|
||||
|
||||
@ -22,7 +22,7 @@ final class SearchQuery: ObservableObject {
|
||||
}
|
||||
|
||||
var name: String {
|
||||
rawValue.capitalized
|
||||
rawValue.capitalized.localized()
|
||||
}
|
||||
}
|
||||
|
||||
@ -36,11 +36,11 @@ final class SearchQuery: ObservableObject {
|
||||
var name: String {
|
||||
switch self {
|
||||
case .uploadDate:
|
||||
return "Date"
|
||||
return "Date".localized()
|
||||
case .viewCount:
|
||||
return "Views"
|
||||
return "Views".localized()
|
||||
default:
|
||||
return rawValue.capitalized
|
||||
return rawValue.capitalized.localized()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,12 +18,18 @@ final class SponsorBlockAPI: ObservableObject {
|
||||
}
|
||||
|
||||
switch name {
|
||||
case "sponsor":
|
||||
return "Sponsor".localized()
|
||||
case "selfpromo":
|
||||
return "Self-promotion"
|
||||
|
||||
return "Self-promotion".localized()
|
||||
case "intro":
|
||||
return "Intro".localized()
|
||||
case "outro":
|
||||
return "Outro".localized()
|
||||
case "interaction":
|
||||
return "Interaction".localized()
|
||||
case "music_offtopic":
|
||||
return "Offtopic in Music Videos"
|
||||
|
||||
return "Offtopic in Music Videos".localized()
|
||||
default:
|
||||
return name.capitalized
|
||||
}
|
||||
@ -36,25 +42,25 @@ final class SponsorBlockAPI: ObservableObject {
|
||||
|
||||
switch name {
|
||||
case "sponsor":
|
||||
return "Part of a video promoting a product or service not directly related to the creator. " +
|
||||
"The creator will receive payment or compensation in the form of money or free products."
|
||||
return ("Part of a video promoting a product or service not directly related to the creator. " +
|
||||
"The creator will receive payment or compensation in the form of money or free products.").localized()
|
||||
|
||||
case "selfpromo":
|
||||
return "Promoting a product or service that is directly related to the creator themselves. " +
|
||||
"This usually includes merchandise or promotion of monetized platforms."
|
||||
return ("Promoting a product or service that is directly related to the creator themselves. " +
|
||||
"This usually includes merchandise or promotion of monetized platforms.").localized()
|
||||
|
||||
case "intro":
|
||||
return "Segments typically found at the start of a video that include an animation, " +
|
||||
"still frame or clip which are also seen in other videos by the same creator."
|
||||
return ("Segments typically found at the start of a video that include an animation, " +
|
||||
"still frame or clip which are also seen in other videos by the same creator.").localized()
|
||||
|
||||
case "outro":
|
||||
return "Typically near or at the end of the video when the credits pop up and/or endcards are shown."
|
||||
return ("Typically near or at the end of the video when the credits pop up and/or endcards are shown.").localized()
|
||||
|
||||
case "interaction":
|
||||
return "Explicit reminders to like, subscribe or interact with them on any paid or free platform(s) (e.g. click on a video)."
|
||||
return ("Explicit reminders to like, subscribe or interact with them on any paid or free platform(s) (e.g. click on a video).").localized()
|
||||
|
||||
case "music_offtopic":
|
||||
return "For videos which feature music as the primary content."
|
||||
return ("For videos which feature music as the primary content.").localized()
|
||||
|
||||
default:
|
||||
return nil
|
||||
|
@ -1,4 +1,5 @@
|
||||
import Defaults
|
||||
import Foundation
|
||||
|
||||
enum TrendingCategory: String, CaseIterable, Identifiable, Defaults.Serializable {
|
||||
case `default`, music, gaming, movies
|
||||
@ -8,14 +9,23 @@ enum TrendingCategory: String, CaseIterable, Identifiable, Defaults.Serializable
|
||||
}
|
||||
|
||||
var title: RawValue {
|
||||
rawValue.capitalized
|
||||
switch self {
|
||||
case .default:
|
||||
return "All".localized()
|
||||
case .music:
|
||||
return "Music".localized()
|
||||
case .gaming:
|
||||
return "Gaming".localized()
|
||||
case .movies:
|
||||
return "Movies".localized()
|
||||
}
|
||||
}
|
||||
|
||||
var name: String {
|
||||
id == "default" ? "Trending" : title
|
||||
id == "default" ? "Trending".localized() : title
|
||||
}
|
||||
|
||||
var controlLabel: String {
|
||||
id == "default" ? "All" : title
|
||||
id == "default" ? "All".localized() : title
|
||||
}
|
||||
}
|
||||
|
@ -238,7 +238,7 @@ enum VisibleSection: String, CaseIterable, Comparable, Defaults.Serializable {
|
||||
case favorites, subscriptions, popular, trending, playlists
|
||||
|
||||
var title: String {
|
||||
rawValue.localizedCapitalized
|
||||
rawValue.capitalized.localized()
|
||||
}
|
||||
|
||||
var tabSelection: TabSelection {
|
||||
@ -312,6 +312,17 @@ enum PlayerDetailsPageButtonLabelStyle: String, CaseIterable, Defaults.Serializa
|
||||
|
||||
enum ThumbnailsQuality: String, CaseIterable, Defaults.Serializable {
|
||||
case highest, medium, low
|
||||
|
||||
var description: String {
|
||||
switch self {
|
||||
case .highest:
|
||||
return "Highest quality".localized()
|
||||
case .medium:
|
||||
return "Medium quality".localized()
|
||||
case .low:
|
||||
return "Low quality".localized()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enum SystemControlsCommands: String, CaseIterable, Defaults.Serializable {
|
||||
|
@ -3,7 +3,7 @@ import Foundation
|
||||
import SwiftUI
|
||||
|
||||
struct Buffering: View {
|
||||
var reason = "Buffering stream..."
|
||||
var reason = "Buffering stream...".localized()
|
||||
var state: String?
|
||||
|
||||
#if os(iOS)
|
||||
|
@ -14,7 +14,15 @@ struct OpeningStream: View {
|
||||
}
|
||||
|
||||
var reason: String {
|
||||
player.videoBeingOpened.isNil ? "Opening\(streamQuality)stream..." : "Loading streams..."
|
||||
guard player.videoBeingOpened != nil else {
|
||||
return "Loading streams...".localized()
|
||||
}
|
||||
|
||||
if player.musicMode {
|
||||
return "Opening audio stream...".localized()
|
||||
}
|
||||
|
||||
return String(format: "Opening %@ stream...".localized(), streamQuality)
|
||||
}
|
||||
|
||||
var state: String? {
|
||||
|
@ -45,11 +45,11 @@ enum PlayerControlsLayout: String, CaseIterable, Defaults.Serializable {
|
||||
var description: String {
|
||||
switch self {
|
||||
case .tvRegular:
|
||||
return "TV"
|
||||
return "TV".localized()
|
||||
case .veryLarge:
|
||||
return "Very Large"
|
||||
return "Very Large".localized()
|
||||
default:
|
||||
return rawValue.capitalized
|
||||
return rawValue.capitalized.localized()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -70,11 +70,26 @@ struct VideoDetails: View {
|
||||
)
|
||||
|
||||
HStack(spacing: 4) {
|
||||
pageButton("Info", "info.circle", .info, !video.isNil)
|
||||
pageButton("Chapters", "bookmark", .chapters, !(video?.chapters.isEmpty ?? true))
|
||||
pageButton("Comments", "text.bubble", .comments, !video.isNil) { comments.load() }
|
||||
pageButton("Related", "rectangle.stack.fill", .related, !video.isNil)
|
||||
pageButton("Queue", "list.number", .queue, !player.queue.isEmpty)
|
||||
pageButton(
|
||||
"Info".localized(),
|
||||
"info.circle", .info, !video.isNil
|
||||
)
|
||||
pageButton(
|
||||
"Chapters".localized(),
|
||||
"bookmark", .chapters, !(video?.chapters.isEmpty ?? true)
|
||||
)
|
||||
pageButton(
|
||||
"Comments".localized(),
|
||||
"text.bubble", .comments, !video.isNil
|
||||
) { comments.load() }
|
||||
pageButton(
|
||||
"Related".localized(),
|
||||
"rectangle.stack.fill", .related, !video.isNil
|
||||
)
|
||||
pageButton(
|
||||
"Queue".localized(),
|
||||
"list.number", .queue, !player.queue.isEmpty
|
||||
)
|
||||
}
|
||||
.onChange(of: player.currentItem) { _ in
|
||||
page.update(.moveToFirst)
|
||||
|
@ -328,6 +328,7 @@ struct VideoPlayerView: View {
|
||||
if !fullScreenPlayer {
|
||||
VideoDetails(sidebarQueue: sidebarQueue, fullScreen: $fullScreenDetails)
|
||||
#if os(iOS)
|
||||
// .zIndex(-1)
|
||||
.ignoresSafeArea(.all, edges: .bottom)
|
||||
#endif
|
||||
.background(colorScheme == .dark ? Color.black : Color.white)
|
||||
|
@ -89,28 +89,29 @@ struct PlaylistsView: View {
|
||||
}
|
||||
.padding(.horizontal)
|
||||
}) {
|
||||
SignInRequiredView(title: "Playlists") {
|
||||
VStack {
|
||||
#if os(tvOS)
|
||||
toolbar
|
||||
#endif
|
||||
|
||||
if currentPlaylist != nil, items.isEmpty {
|
||||
hintText("Playlist is empty\n\nTap and hold on a video and then tap \"Add to Playlist\"")
|
||||
} else if model.all.isEmpty {
|
||||
hintText("You have no playlists\n\nTap on \"New Playlist\" to create one")
|
||||
} else {
|
||||
Group {
|
||||
#if os(tvOS)
|
||||
HorizontalCells(items: items)
|
||||
.padding(.top, 40)
|
||||
Spacer()
|
||||
#else
|
||||
VerticalCells(items: items)
|
||||
.environment(\.scrollViewBottomPadding, 70)
|
||||
#endif
|
||||
SignInRequiredView(title: "Playlists".localized()) {
|
||||
ScrollView {
|
||||
VStack {
|
||||
#if os(tvOS)
|
||||
toolbar
|
||||
#endif
|
||||
if currentPlaylist != nil, items.isEmpty {
|
||||
hintText("Playlist is empty\n\nTap and hold on a video and then \n\"Add to Playlist\"".localized())
|
||||
} else if model.all.isEmpty {
|
||||
hintText("You have no playlists\n\nTap on \"New Playlist\" to create one".localized())
|
||||
} else {
|
||||
Group {
|
||||
#if os(tvOS)
|
||||
HorizontalCells(items: items)
|
||||
.padding(.top, 40)
|
||||
Spacer()
|
||||
#else
|
||||
VerticalCells(items: items)
|
||||
.environment(\.scrollViewBottomPadding, 70)
|
||||
#endif
|
||||
}
|
||||
.environment(\.currentPlaylistID, currentPlaylist?.id)
|
||||
}
|
||||
.environment(\.currentPlaylistID, currentPlaylist?.id)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -112,7 +112,7 @@ struct AdvancedSettings: View {
|
||||
}
|
||||
|
||||
var manifestHeader: some View {
|
||||
SettingsHeader(text: "Public Manifest")
|
||||
SettingsHeader(text: "Public Manifest".localized())
|
||||
}
|
||||
|
||||
var showMPVPlaybackStatsToggle: some View {
|
||||
|
@ -45,7 +45,7 @@ struct BrowsingSettings: View {
|
||||
}
|
||||
|
||||
private var interfaceSettings: some View {
|
||||
Section(header: SettingsHeader(text: "Interface")) {
|
||||
Section(header: SettingsHeader(text: "Interface".localized())) {
|
||||
#if os(iOS)
|
||||
Toggle("Lock portrait mode", isOn: $lockPortraitWhenBrowsing)
|
||||
.onChange(of: lockPortraitWhenBrowsing) { lock in
|
||||
@ -66,7 +66,7 @@ struct BrowsingSettings: View {
|
||||
}
|
||||
|
||||
private var thumbnailsSettings: some View {
|
||||
Section(header: SettingsHeader(text: "Thumbnails")) {
|
||||
Section(header: SettingsHeader(text: "Thumbnails".localized())) {
|
||||
thumbnailsQualityPicker
|
||||
#if !os(tvOS)
|
||||
Toggle("Round corners", isOn: $roundedThumbnails)
|
||||
@ -79,14 +79,14 @@ struct BrowsingSettings: View {
|
||||
private var thumbnailsQualityPicker: some View {
|
||||
Picker("Quality", selection: $thumbnailsQuality) {
|
||||
ForEach(ThumbnailsQuality.allCases, id: \.self) { quality in
|
||||
Text(quality.rawValue.capitalized + " quality").tag(quality)
|
||||
Text(quality.description)
|
||||
}
|
||||
}
|
||||
.modifier(SettingsPickerModifier())
|
||||
}
|
||||
|
||||
private var visibleSectionsSettings: some View {
|
||||
Section(header: SettingsHeader(text: "Sections")) {
|
||||
Section(header: SettingsHeader(text: "Sections".localized())) {
|
||||
#if os(macOS)
|
||||
let list = ForEach(VisibleSection.allCases, id: \.self) { section in
|
||||
VisibleSectionSelectionRow(
|
||||
|
@ -17,34 +17,34 @@ struct Help: View {
|
||||
ScrollView(.vertical, showsIndicators: false) {
|
||||
VStack(alignment: .leading, spacing: 0) {
|
||||
Section {
|
||||
header("I am lost")
|
||||
header("I am lost".localized())
|
||||
|
||||
Text("You can find information about using Yattee in the Wiki pages.")
|
||||
.padding(.bottom, 8)
|
||||
|
||||
helpItemLink("Wiki", url: Self.wikiURL, systemImage: "questionmark.circle")
|
||||
helpItemLink("Wiki".localized(), url: Self.wikiURL, systemImage: "questionmark.circle")
|
||||
.padding(.bottom, 8)
|
||||
}
|
||||
|
||||
Spacer()
|
||||
|
||||
Section {
|
||||
header("I want to ask a question")
|
||||
header("I want to ask a question".localized())
|
||||
|
||||
Text("Discussions take place in Discord and Matrix. It's a good spot for general questions.")
|
||||
.padding(.bottom, 8)
|
||||
|
||||
helpItemLink("Discord Server", url: Self.discordURL, systemImage: "message")
|
||||
helpItemLink("Discord Server".localized(), url: Self.discordURL, systemImage: "message")
|
||||
.padding(.bottom, 8)
|
||||
helpItemLink("Matrix Channel", url: Self.matrixURL, systemImage: "message")
|
||||
helpItemLink("Matrix Channel".localized(), url: Self.matrixURL, systemImage: "message")
|
||||
.padding(.bottom, 8)
|
||||
}
|
||||
|
||||
Spacer()
|
||||
|
||||
Section {
|
||||
header("I found a bug /")
|
||||
header("I have a feature request")
|
||||
header("I found a bug /".localized())
|
||||
header("I have a feature request".localized())
|
||||
|
||||
Text("Bugs and great feature ideas can be sent to the GitHub issues tracker. ")
|
||||
Text("If you are reporting a bug, include all relevant details (especially: app\u{00a0}version, used device and system version, steps to reproduce).")
|
||||
@ -52,8 +52,8 @@ struct Help: View {
|
||||
.padding(.bottom, 8)
|
||||
|
||||
VStack(alignment: .leading, spacing: 8) {
|
||||
helpItemLink("Issues Tracker", url: Self.issuesURL, systemImage: "ladybug")
|
||||
helpItemLink("Milestones", url: Self.milestonesURL, systemImage: "list.star")
|
||||
helpItemLink("Issues Tracker".localized(), url: Self.issuesURL, systemImage: "ladybug")
|
||||
helpItemLink("Milestones".localized(), url: Self.milestonesURL, systemImage: "list.star")
|
||||
}
|
||||
.padding(.bottom, 8)
|
||||
}
|
||||
@ -61,15 +61,14 @@ struct Help: View {
|
||||
Spacer()
|
||||
|
||||
Section {
|
||||
header("I like this app!")
|
||||
header("I like this app!".localized())
|
||||
|
||||
Text("That's nice to hear. It is fun to deliver apps other people want to use. " +
|
||||
"You can consider donating to the project or help by contributing to new features development.")
|
||||
Text("That's nice to hear. It is fun to deliver apps other people want to use. You can consider donating to the project or help by contributing to new features development.")
|
||||
.padding(.bottom, 8)
|
||||
|
||||
VStack(alignment: .leading, spacing: 8) {
|
||||
helpItemLink("Donations", url: Self.donationsURL, systemImage: "dollarsign.circle")
|
||||
helpItemLink("Contributing", url: Self.contributingURL, systemImage: "hammer")
|
||||
helpItemLink("Donations".localized(), url: Self.donationsURL, systemImage: "dollarsign.circle")
|
||||
helpItemLink("Contributing".localized(), url: Self.contributingURL, systemImage: "hammer")
|
||||
}
|
||||
.padding(.bottom, 8)
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ struct HistorySettings: View {
|
||||
private var sections: some View {
|
||||
Group {
|
||||
#if os(tvOS)
|
||||
Section(header: SettingsHeader(text: "History")) {
|
||||
Section(header: SettingsHeader(text: "History".localized())) {
|
||||
Toggle("Save history of searches, channels and playlists", isOn: $saveRecents)
|
||||
Toggle("Save history of played videos", isOn: $saveHistory)
|
||||
Toggle("Show progress of watching on thumbnails", isOn: $showWatchingProgress)
|
||||
@ -53,7 +53,7 @@ struct HistorySettings: View {
|
||||
watchedVideoBadgeColorPicker
|
||||
}
|
||||
#else
|
||||
Section(header: SettingsHeader(text: "History")) {
|
||||
Section(header: SettingsHeader(text: "History".localized())) {
|
||||
Toggle("Save history of searches, channels and playlists", isOn: $saveRecents)
|
||||
Toggle("Save history of played videos", isOn: $saveHistory)
|
||||
Toggle("Show progress of watching on thumbnails", isOn: $showWatchingProgress)
|
||||
@ -61,7 +61,7 @@ struct HistorySettings: View {
|
||||
Toggle("Keep last played video in the queue after restart", isOn: $saveLastPlayed)
|
||||
}
|
||||
|
||||
Section(header: SettingsHeader(text: "Watched")) {
|
||||
Section(header: SettingsHeader(text: "Watched".localized())) {
|
||||
watchedVideoPlayNowBehaviorPicker
|
||||
#if os(macOS)
|
||||
.padding(.top, 1)
|
||||
@ -70,7 +70,7 @@ struct HistorySettings: View {
|
||||
resetWatchedStatusOnPlayingToggle
|
||||
}
|
||||
|
||||
Section(header: SettingsHeader(text: "Interface")) {
|
||||
Section(header: SettingsHeader(text: "Interface".localized())) {
|
||||
watchedVideoStylePicker
|
||||
#if os(macOS)
|
||||
.padding(.top, 1)
|
||||
@ -88,7 +88,7 @@ struct HistorySettings: View {
|
||||
}
|
||||
|
||||
private var watchedThresholdPicker: some View {
|
||||
Section(header: SettingsHeader(text: "Mark video as watched after playing", secondary: true)) {
|
||||
Section(header: SettingsHeader(text: "Mark video as watched after playing".localized(), secondary: true)) {
|
||||
Picker("Mark video as watched after playing", selection: $watchedThreshold) {
|
||||
ForEach(Self.watchedThresholds, id: \.self) { threshold in
|
||||
Text("\(threshold)%").tag(threshold)
|
||||
@ -100,7 +100,7 @@ struct HistorySettings: View {
|
||||
}
|
||||
|
||||
private var watchedVideoStylePicker: some View {
|
||||
Section(header: SettingsHeader(text: "Mark watched videos with", secondary: true)) {
|
||||
Section(header: SettingsHeader(text: "Mark watched videos with".localized(), secondary: true)) {
|
||||
Picker("Mark watched videos with", selection: $watchedVideoStyle) {
|
||||
Text("Nothing").tag(WatchedVideoStyle.nothing)
|
||||
Text("Badge").tag(WatchedVideoStyle.badge)
|
||||
@ -113,7 +113,7 @@ struct HistorySettings: View {
|
||||
}
|
||||
|
||||
private var watchedVideoBadgeColorPicker: some View {
|
||||
Section(header: SettingsHeader(text: "Badge color", secondary: true)) {
|
||||
Section(header: SettingsHeader(text: "Badge color".localized(), secondary: true)) {
|
||||
Picker("Badge color", selection: $watchedVideoBadgeColor) {
|
||||
Text("Based on system color scheme").tag(WatchedVideoBadgeColor.colorSchemeBased)
|
||||
Text("Blue").tag(WatchedVideoBadgeColor.blue)
|
||||
@ -127,7 +127,7 @@ struct HistorySettings: View {
|
||||
}
|
||||
|
||||
private var watchedVideoPlayNowBehaviorPicker: some View {
|
||||
Section(header: SettingsHeader(text: "When partially watched video is played", secondary: true)) {
|
||||
Section(header: SettingsHeader(text: "When partially watched video is played".localized(), secondary: true)) {
|
||||
Picker("When partially watched video is played", selection: $watchedVideoPlayNowBehavior) {
|
||||
Text("Continue").tag(WatchedVideoPlayNowBehavior.continue)
|
||||
Text("Restart").tag(WatchedVideoPlayNowBehavior.restart)
|
||||
|
@ -11,7 +11,7 @@ struct InstanceSettings: View {
|
||||
|
||||
var body: some View {
|
||||
List {
|
||||
Section(header: Text("Accounts")) {
|
||||
Section(header: Text("Accounts".localized())) {
|
||||
if instance.app.supportsAccounts {
|
||||
ForEach(InstancesModel.accounts(instance.id), id: \.self) { account in
|
||||
#if os(tvOS)
|
||||
@ -61,7 +61,7 @@ struct InstanceSettings: View {
|
||||
}
|
||||
}
|
||||
if instance.app.hasFrontendURL {
|
||||
Section(header: Text("Frontend URL")) {
|
||||
Section(header: Text("Frontend URL".localized())) {
|
||||
TextField(
|
||||
"Frontend URL",
|
||||
text: $frontendURL
|
||||
|
@ -41,7 +41,7 @@ struct LocationsSettings: View {
|
||||
}
|
||||
|
||||
@ViewBuilder var settings: some View {
|
||||
Section(header: SettingsHeader(text: "Public Locations"), footer: countryFooter) {
|
||||
Section(header: SettingsHeader(text: "Public Locations".localized()), footer: countryFooter) {
|
||||
Picker("Country", selection: $countryOfPublicInstances) {
|
||||
Text("Don't use public locations").tag(String?.none)
|
||||
ForEach(countries, id: \.self) { country in
|
||||
@ -65,7 +65,7 @@ struct LocationsSettings: View {
|
||||
.disabled(countryOfPublicInstances.isNil)
|
||||
}
|
||||
|
||||
Section(header: SettingsHeader(text: "Custom Locations")) {
|
||||
Section(header: SettingsHeader(text: "Custom Locations".localized())) {
|
||||
#if os(macOS)
|
||||
InstancesSettings()
|
||||
.environmentObject(model)
|
||||
@ -80,8 +80,8 @@ struct LocationsSettings: View {
|
||||
|
||||
@ViewBuilder var countryFooter: some View {
|
||||
if let account = accounts.current {
|
||||
let locationType = account.isPublic ? (account.country ?? "Unknown") : "Custom"
|
||||
let description = account.isPublic ? account.url : account.instance?.description ?? "unknown"
|
||||
let locationType = account.isPublic ? (account.country ?? "Unknown") : "Custom".localized()
|
||||
let description = account.isPublic ? account.url : account.instance?.description ?? "unknown".localized()
|
||||
|
||||
Text("Current: \(locationType)\n\(description)")
|
||||
.foregroundColor(.secondary)
|
||||
@ -99,7 +99,7 @@ struct LocationsSettings: View {
|
||||
}
|
||||
}
|
||||
.onFailure { _ in
|
||||
model.presentAlert(title: "Could not load locations manifest")
|
||||
model.presentAlert(title: "Could not load locations manifest".localized())
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -61,7 +61,7 @@ struct PlayerSettings: View {
|
||||
|
||||
private var sections: some View {
|
||||
Group {
|
||||
Section(header: SettingsHeader(text: "Playback")) {
|
||||
Section(header: SettingsHeader(text: "Playback".localized())) {
|
||||
sourcePicker
|
||||
pauseOnHidingPlayerToggle
|
||||
#if !os(macOS)
|
||||
@ -73,20 +73,20 @@ struct PlayerSettings: View {
|
||||
}
|
||||
|
||||
#if !os(tvOS)
|
||||
Section(header: SettingsHeader(text: "Controls"), footer: controlsLayoutFooter) {
|
||||
Section(header: SettingsHeader(text: "Controls".localized()), footer: controlsLayoutFooter) {
|
||||
horizontalPlayerGestureEnabledToggle
|
||||
SettingsHeader(text: "Seek gesture sensitivity", secondary: true)
|
||||
SettingsHeader(text: "Seek gesture sensitivity".localized(), secondary: true)
|
||||
seekGestureSensitivityPicker
|
||||
SettingsHeader(text: "Seek gesture speed", secondary: true)
|
||||
SettingsHeader(text: "Seek gesture speed".localized(), secondary: true)
|
||||
seekGestureSpeedPicker
|
||||
SettingsHeader(text: "Regular size", secondary: true)
|
||||
SettingsHeader(text: "Regular size".localized(), secondary: true)
|
||||
playerControlsLayoutPicker
|
||||
SettingsHeader(text: "Fullscreen size", secondary: true)
|
||||
SettingsHeader(text: "Fullscreen size".localized(), secondary: true)
|
||||
fullScreenPlayerControlsLayoutPicker
|
||||
}
|
||||
#endif
|
||||
|
||||
Section(header: SettingsHeader(text: "Interface")) {
|
||||
Section(header: SettingsHeader(text: "Interface".localized())) {
|
||||
#if os(iOS)
|
||||
if idiom == .pad {
|
||||
sidebarPicker
|
||||
@ -103,7 +103,7 @@ struct PlayerSettings: View {
|
||||
}
|
||||
|
||||
#if os(iOS)
|
||||
Section(header: SettingsHeader(text: "Orientation")) {
|
||||
Section(header: SettingsHeader(text: "Orientation".localized())) {
|
||||
if idiom == .pad {
|
||||
enterFullscreenInLandscapeToggle
|
||||
}
|
||||
@ -111,7 +111,7 @@ struct PlayerSettings: View {
|
||||
}
|
||||
#endif
|
||||
|
||||
Section(header: SettingsHeader(text: "Picture in Picture")) {
|
||||
Section(header: SettingsHeader(text: "Picture in Picture".localized())) {
|
||||
closePiPOnNavigationToggle
|
||||
closePiPOnOpeningPlayerToggle
|
||||
closePlayerOnOpeningPiPToggle
|
||||
@ -124,7 +124,7 @@ struct PlayerSettings: View {
|
||||
|
||||
private var sourcePicker: some View {
|
||||
Picker("Source", selection: $playerInstanceID) {
|
||||
Text("Account Instance").tag(String?.none)
|
||||
Text("Instance of current account").tag(String?.none)
|
||||
|
||||
ForEach(instances) { instance in
|
||||
Text(instance.description).tag(Optional(instance.id))
|
||||
@ -136,15 +136,15 @@ struct PlayerSettings: View {
|
||||
private var systemControlsCommandsPicker: some View {
|
||||
func labelText(_ label: String) -> String {
|
||||
#if os(macOS)
|
||||
"System controls show buttons for \(label)"
|
||||
String(format: "System controls show buttons for %@".localized(), label)
|
||||
#else
|
||||
label
|
||||
#endif
|
||||
}
|
||||
|
||||
return Picker("System controls buttons", selection: $systemControlsCommands) {
|
||||
Text(labelText("10 seconds forwards/backwards")).tag(SystemControlsCommands.seek)
|
||||
Text(labelText("Restart/Play next")).tag(SystemControlsCommands.restartAndAdvanceToNext)
|
||||
Text(labelText("10 seconds forwards/backwards".localized())).tag(SystemControlsCommands.seek)
|
||||
Text(labelText("Restart/Play next".localized())).tag(SystemControlsCommands.restartAndAdvanceToNext)
|
||||
}
|
||||
.onChange(of: systemControlsCommands) { _ in
|
||||
player.updateRemoteCommandCenter()
|
||||
|
@ -68,7 +68,7 @@ struct QualitySettings: View {
|
||||
forceAVPlayerForLiveStreamsToggle
|
||||
}
|
||||
.disabled(qualityProfiles.isEmpty)
|
||||
Section(header: SettingsHeader(text: "Profiles"), footer: profilesFooter) {
|
||||
Section(header: SettingsHeader(text: "Profiles".localized()), footer: profilesFooter) {
|
||||
profilesList
|
||||
|
||||
Button {
|
||||
|
@ -99,7 +99,7 @@ struct SettingsView: View {
|
||||
.tag(Tabs.help)
|
||||
}
|
||||
.padding(20)
|
||||
.frame(width: 520, height: windowHeight)
|
||||
.frame(width: 600, height: windowHeight)
|
||||
#else
|
||||
NavigationView {
|
||||
settingsList
|
||||
|
@ -39,7 +39,7 @@ struct SponsorBlockSettings: View {
|
||||
#endif
|
||||
}
|
||||
|
||||
Section(header: SettingsHeader(text: "Categories to Skip"), footer: categoriesDetails) {
|
||||
Section(header: SettingsHeader(text: "Categories to Skip".localized()), footer: categoriesDetails) {
|
||||
#if os(macOS)
|
||||
let list = ForEach(SponsorBlockAPI.categories, id: \.self) { category in
|
||||
MultiselectRow(
|
||||
|
@ -1,7 +1,7 @@
|
||||
import SwiftUI
|
||||
|
||||
struct TrendingCountry: View {
|
||||
static let prompt = "Country Name or Code"
|
||||
static let prompt = "Country Name or Code".localized()
|
||||
@Binding var selectedCountry: Country
|
||||
|
||||
@StateObject private var store = Store(Country.allCases)
|
||||
|
@ -24,7 +24,7 @@ struct VideoBanner: View {
|
||||
#endif
|
||||
}
|
||||
VStack(alignment: .leading, spacing: 4) {
|
||||
Text(video?.title ?? "Loading...")
|
||||
Text(video?.title ?? "Loading...".localized())
|
||||
.truncationMode(.middle)
|
||||
.lineLimit(2)
|
||||
.font(.headline)
|
||||
|
@ -227,7 +227,8 @@ struct ControlsBar: View {
|
||||
}
|
||||
|
||||
VStack(alignment: .leading, spacing: 0) {
|
||||
Text(model.currentVideo?.title ?? "Not Playing")
|
||||
let notPlaying = "Not Playing".localized()
|
||||
Text(model.currentVideo?.title ?? notPlaying)
|
||||
.font(.system(size: 14))
|
||||
.fontWeight(.semibold)
|
||||
.foregroundColor(model.currentVideo.isNil ? .secondary : .accentColor)
|
||||
|
@ -89,13 +89,19 @@ struct ShareButton: View {
|
||||
}
|
||||
|
||||
private func labelForShareURL(_ app: String, withTime: Bool = false) -> String {
|
||||
let time = withTime ? "with time" : ""
|
||||
|
||||
#if os(macOS)
|
||||
return "Copy \(app) link \(time)"
|
||||
#else
|
||||
return "Share \(app) link \(time)"
|
||||
#endif
|
||||
if withTime {
|
||||
#if os(macOS)
|
||||
return String(format: "Copy %@ link with time".localized(), app)
|
||||
#else
|
||||
return String(format: "Share %@ link with time".localized(), app)
|
||||
#endif
|
||||
} else {
|
||||
#if os(macOS)
|
||||
return String(format: "Copy %@ link".localized(), app)
|
||||
#else
|
||||
return String(format: "Share %@ link".localized(), app)
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,7 @@ struct SubscriptionsView: View {
|
||||
|
||||
var body: some View {
|
||||
BrowserPlayerControls {
|
||||
SignInRequiredView(title: "Subscriptions") {
|
||||
SignInRequiredView(title: "Subscriptions".localized()) {
|
||||
VerticalCells(items: videos)
|
||||
.onAppear {
|
||||
loadResources()
|
||||
|
@ -112,14 +112,15 @@ struct VideoContextMenuView: View {
|
||||
|
||||
private var watchedAtString: String? {
|
||||
if watchingNow {
|
||||
return "Watching now"
|
||||
return "Watching now".localized()
|
||||
}
|
||||
|
||||
if let watch = watch, let watchedAtString = watch.watchedAtString {
|
||||
if watchedAtString == "in 0 seconds" {
|
||||
return "Just watched"
|
||||
return "Just watched".localized()
|
||||
}
|
||||
return "Watched \(watchedAtString)"
|
||||
let localizedWatchedString = "Watched %@".localized()
|
||||
return String(format: localizedWatchedString, watchedAtString)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
@ -61,8 +61,8 @@ struct WelcomeScreen: View {
|
||||
.background(RoundedRectangle(cornerRadius: 4).foregroundColor(Color.accentColor))
|
||||
.frame(maxWidth: .infinity)
|
||||
#endif
|
||||
Text("This information will be processed only on your device and used to connect you to the server in the specified country.\n" +
|
||||
"It can be changed later in settings. You can use your own locations too.")
|
||||
Text("This information will be processed only on your device and used to connect you to the server in the specified country.".localized() + "\n" +
|
||||
"It can be changed later in settings. You can use your own locations too.".localized())
|
||||
.font(.caption)
|
||||
.foregroundColor(.secondary)
|
||||
}
|
||||
|
976
Shared/en.lproj/Localizable.strings
Normal file
976
Shared/en.lproj/Localizable.strings
Normal file
@ -0,0 +1,976 @@
|
||||
/* No comment provided by engineer. */
|
||||
" subscribers" = " subscribers";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"#" = "#";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%@" = "%@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%@ Channel" = "%@ Channel";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%@ Playlist" = "%@ Playlist";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%@ subscribers" = "%@ subscribers";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%lld videos" = "%lld videos";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%lld%%" = "%lld%%";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"1 century ago" = "1 century ago";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"1,234M" = "1,234M";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"10 seconds forwards/backwards" = "10 seconds forwards/backwards";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"1234" = "1234";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"a" = "a";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"A" = "A";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Accounts" = "Accounts";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Accounts are not supported for the application of this instance" = "Accounts are not supported for the application of this instance";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add Account" = "Add Account";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add Account..." = "Add Account...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add Location" = "Add Location";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add Location..." = "Add Location...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add profile..." = "Add profile...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add Quality Profile" = "Add Quality Profile";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add to %@" = "Add to %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add to Favorites" = "Add to Favorites";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add to Playlist" = "Add to Playlist";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add to Playlist..." = "Add to Playlist...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Advanced" = "Advanced";
|
||||
|
||||
/* Trending category, section containing all kinds of videos */
|
||||
"All" = "All";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Always use AVPlayer for live videos" = "Always use AVPlayer for live videos";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Anonymous" = "Anonymous";
|
||||
|
||||
/* Video date filter in search
|
||||
Video duration filter in search */
|
||||
"Any" = "Any";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Apply to all" = "Apply to all";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Are you sure you want to clear history of watched videos?" = "Are you sure you want to clear history of watched videos?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Are you sure you want to clear search history?" = "Are you sure you want to clear search history?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Are you sure you want to delete playlist?" = "Are you sure you want to delete playlist?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Are you sure you want to restore default quality profiles?" = "Are you sure you want to restore default quality profiles?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Are you sure you want to unsubscribe from %@?" = "Are you sure you want to unsubscribe from %@?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Automatic" = "Automatic";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Autoplaying Next" = "Autoplaying Next";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Backend" = "Backend";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Badge" = "Badge";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Badge & Decreased opacity" = "Badge & Decreased opacity";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Badge color" = "Badge color";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Based on system color scheme" = "Based on system color scheme";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Battery" = "Battery";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Blue" = "Blue";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Browsing" = "Browsing";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Buffering stream..." = "Buffering stream...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Bugs and great feature ideas can be sent to the GitHub issues tracker. " = "Bugs and great feature ideas can be sent to the GitHub issues tracker. ";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Button" = "Button";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"cache-pause-wait" = "cache-pause-wait";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"cache-secs" = "cache-secs";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Cancel" = "Cancel";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Captions" = "Captions";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Categories to Skip" = "Categories to Skip";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Category" = "Category";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Cellular" = "Cellular";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chapters" = "Chapters";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Charging" = "Charging";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Clear" = "Clear";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Clear All" = "Clear All";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Clear All Recents" = "Clear All Recents";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Clear History" = "Clear History";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Clear Search History" = "Clear Search History";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Clear Search History..." = "Clear Search History...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Clear the queue" = "Clear the queue";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Close" = "Close";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Close PiP and open player when application enters foreground" = "Close PiP and open player when application enters foreground";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Close PiP when player is opened" = "Close PiP when player is opened";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Close PiP when starting playing other video" = "Close PiP when starting playing other video";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Close player when closing video" = "Close player when closing video";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Close player when starting PiP" = "Close player when starting PiP";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Close Video" = "Close Video";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Close video after playing last in the queue" = "Close video after playing last in the queue";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Comments" = "Comments";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connected successfully (%@)" = "Connected successfully (%@)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connection failed" = "Connection failed";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Contact" = "Contact";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Continue" = "Continue";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Continue from %@" = "Continue from %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Contributing" = "Contributing";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Controls" = "Controls";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Copy %@ link" = "Copy %@ link";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Copy %@ link with time" = "Copy %@ link with time";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Could not load locations manifest" = "Could not load locations manifest";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Country" = "Country";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Country Name or Code" = "Country Name or Code";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Create Playlist" = "Create Playlist";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Current: %@\n%@" = "Current: %@\n%@";
|
||||
|
||||
/* Locations settings, custom instance is selected as current */
|
||||
"Custom" = "Custom";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Custom Locations" = "Custom Locations";
|
||||
|
||||
/* Video sort order in search */
|
||||
"Date" = "Date";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Decrease rate" = "Decrease rate";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Decreased opacity" = "Decreased opacity";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete" = "Delete";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Disabled" = "Disabled";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Discord Server" = "Discord Server";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Discussions take place in Discord and Matrix. It's a good spot for general questions." = "Discussions take place in Discord and Matrix. It's a good spot for general questions.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Don't use public locations" = "Don't use public locations";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Donations" = "Donations";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Done" = "Done";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Duration" = "Duration";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Edit" = "Edit";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Edit Playlist" = "Edit Playlist";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Edit Quality Profile" = "Edit Quality Profile";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Edit..." = "Edit...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Enable logging" = "Enable logging";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Enable Return YouTube Dislike" = "Enable Return YouTube Dislike";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Enter fullscreen in landscape" = "Enter fullscreen in landscape";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Error" = "Error";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Error when accessing playlist" = "Error when accessing playlist";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Explicit reminders to like, subscribe or interact with them on any paid or free platform(s) (e.g. click on a video)." = "Explicit reminders to like, subscribe or interact with them on any paid or free platform(s) (e.g. click on a video).";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Favorites" = "Favorites";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Filter" = "Filter";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Filter: active" = "Filter: active";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Find Other" = "Find Other";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Finding something to play..." = "Finding something to play...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"For videos which feature music as the primary content." = "For videos which feature music as the primary content.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Formats will be selected in order as listed.\nHLS is an adaptive format (resolution setting does not apply)." = "Formats will be selected in order as listed.\nHLS is an adaptive format (resolution setting does not apply).";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Frontend URL" = "Frontend URL";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Fullscreen size" = "Fullscreen size";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Fullscreen Size" = "Fullscreen Size";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Gaming" = "Gaming";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Help" = "Help";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Hide sidebar" = "Hide sidebar";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"High" = "High";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Highest" = "Highest";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Highest quality" = "Highest quality";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"History" = "History";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Honor orientation lock" = "Honor orientation lock";
|
||||
|
||||
/* Video date filter in search */
|
||||
"Hour" = "Hour";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"I am lost" = "I am lost";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"I found a bug /" = "I found a bug /";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"I have a feature request" = "I have a feature request";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"I like this app!" = "I like this app!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"I want to ask a question" = "I want to ask a question";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"If you are interested what's coming in future updates, you can track project Milestones." = "If you are interested what's coming in future updates, you can track project Milestones.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"If you are reporting a bug, include all relevant details (especially: app version, used device and system version, steps to reproduce)." = "If you are reporting a bug, include all relevant details (especially: app version, used device and system version, steps to reproduce).";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Increase rate" = "Increase rate";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Info" = "Info";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Instance of current account" = "Instance of current account";
|
||||
|
||||
/* SponsorBlock category name */
|
||||
"Interaction" = "Interaction";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Interface" = "Interface";
|
||||
|
||||
/* SponsorBlock category name */
|
||||
"Intro" = "Intro";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Issues Tracker" = "Issues Tracker";
|
||||
|
||||
/* Selected video has just finished playing */
|
||||
"Just watched" = "Just watched";
|
||||
|
||||
/* Player controls layout size */
|
||||
"Large" = "Large";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Large layout is not suitable for all devices and using it may cause controls not to fit on the screen." = "Large layout is not suitable for all devices and using it may cause controls not to fit on the screen.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"LIVE" = "LIVE";
|
||||
|
||||
/* Loading stream OSD */
|
||||
"Loading streams..." = "Loading streams...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Loading..." = "Loading...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Locations" = "Locations";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Lock portrait mode" = "Lock portrait mode";
|
||||
|
||||
/* Video duration filter in search */
|
||||
"Long" = "Long";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Low" = "Low";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Low quality" = "Low quality";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Lowest" = "Lowest";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Mark as watched" = "Mark as watched";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Mark video as watched after playing" = "Mark video as watched after playing";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Mark watched videos with" = "Mark watched videos with";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Matrix Channel" = "Matrix Channel";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Matrix Chat" = "Matrix Chat";
|
||||
|
||||
/* Player controls layout size */
|
||||
"Medium" = "Medium";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Medium quality" = "Medium quality";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Milestones" = "Milestones";
|
||||
|
||||
/* Video date filter in search */
|
||||
"Month" = "Month";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"More info can be found in:" = "More info can be found in:";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Movies" = "Movies";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"MPV Documentation" = "MPV Documentation";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Music" = "Music";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Name" = "Name";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New Playlist" = "New Playlist";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Next" = "Next";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"No description" = "No description";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"No Playlists" = "No Playlists";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"No results" = "No results";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Normal" = "Normal";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Not available" = "Not available";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Not Playing" = "Not Playing";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Nothing" = "Nothing";
|
||||
|
||||
/* SponsorBlock category name */
|
||||
"Offtopic in Music Videos" = "Offtopic in Music Videos";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only when signed in" = "Only when signed in";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Open \"Playlists\" tab to create new one" = "Open \"Playlists\" tab to create new one";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Open Settings" = "Open Settings";
|
||||
|
||||
/* Loading stream OSD */
|
||||
"Opening %@ stream..." = "Opening %@ stream...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Opening audio stream..." = "Opening audio stream...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Orientation" = "Orientation";
|
||||
|
||||
/* SponsorBlock category name */
|
||||
"Outro" = "Outro";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Part of a video promoting a product or service not directly related to the creator. The creator will receive payment or compensation in the form of money or free products." = "Part of a video promoting a product or service not directly related to the creator. The creator will receive payment or compensation in the form of money or free products.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Password" = "Password";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Pause" = "Pause";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Pause when entering background" = "Pause when entering background";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Pause when player is closed" = "Pause when player is closed";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Picture in Picture" = "Picture in Picture";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play" = "Play";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play All" = "Play All";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play in PiP" = "Play in PiP";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play Last" = "Play Last";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play Music" = "Play Music";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play Next" = "Play Next";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play Now" = "Play Now";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Playback" = "Playback";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Player" = "Player";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Playlist" = "Playlist";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Playlist \"%@\" will be deleted.\nIt cannot be reverted." = "Playlist \"%@\" will be deleted.\nIt cannot be reverted.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Playlists" = "Playlists";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Popular" = "Popular";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Preferred Formats" = "Preferred Formats";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Profiles" = "Profiles";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Promoting a product or service that is directly related to the creator themselves. This usually includes merchandise or promotion of monetized platforms." = "Promoting a product or service that is directly related to the creator themselves. This usually includes merchandise or promotion of monetized platforms.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Proxy videos" = "Proxy videos";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Public Locations" = "Public Locations";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Public Manifest" = "Public Manifest";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Quality" = "Quality";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Quality Profile" = "Quality Profile";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Queue" = "Queue";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Queue is empty" = "Queue is empty";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Rate" = "Rate";
|
||||
|
||||
/* Video sort order in search */
|
||||
"Rating" = "Rating";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Recents" = "Recents";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Red" = "Red";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Refresh" = "Refresh";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Regular size" = "Regular size";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Regular Size" = "Regular Size";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Related" = "Related";
|
||||
|
||||
/* Video sort order in search */
|
||||
"Relevance" = "Relevance";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Remove" = "Remove";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Remove from Favorites" = "Remove from Favorites";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Remove from history" = "Remove from history";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Remove from Playlist" = "Remove from Playlist";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Remove from the queue" = "Remove from the queue";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Replies" = "Replies";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset" = "Reset";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset search filters" = "Reset search filters";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset watched status when playing again" = "Reset watched status when playing again";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Resolution" = "Resolution";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Restart" = "Restart";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Restart the app to apply the settings above." = "Restart the app to apply the settings above.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Restart/Play next" = "Restart/Play next";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Restore default profiles..." = "Restore default profiles...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Rotate to portrait when exiting fullscreen" = "Rotate to portrait when exiting fullscreen";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Round corners" = "Round corners";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Save" = "Save";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Save history of played videos" = "Save history of played videos";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Save history of searches, channels and playlists" = "Save history of searches, channels and playlists";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Search" = "Search";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Search history is empty" = "Search history is empty";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Search..." = "Search...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Sections" = "Sections";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Seek gesture sensitivity" = "Seek gesture sensitivity";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Seek gesture speed" = "Seek gesture speed";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Seek with horizontal swipe on video" = "Seek with horizontal swipe on video";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Segments typically found at the start of a video that include an animation, still frame or clip which are also seen in other videos by the same creator." = "Segments typically found at the start of a video that include an animation, still frame or clip which are also seen in other videos by the same creator.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Select location closest to you:" = "Select location closest to you:";
|
||||
|
||||
/* SponsorBlock category name */
|
||||
"Self-promotion" = "Self-promotion";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Settings" = "Settings";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share %@ link" = "Share %@ link";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share %@ link with time" = "Share %@ link with time";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share..." = "Share...";
|
||||
|
||||
/* Video duration filter in search */
|
||||
"Short" = "Short";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show account username" = "Show account username";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show anonymous accounts" = "Show anonymous accounts";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show channel name" = "Show channel name";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show history" = "Show history";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show keywords" = "Show keywords";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show playback statistics" = "Show playback statistics";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show progress of watching on thumbnails" = "Show progress of watching on thumbnails";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show sidebar when space permits" = "Show sidebar when space permits";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show video length" = "Show video length";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Shuffle" = "Shuffle";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Shuffle All" = "Shuffle All";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Sidebar" = "Sidebar";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Sign In Required" = "Sign In Required";
|
||||
|
||||
/* Player controls layout size */
|
||||
"Small" = "Small";
|
||||
|
||||
/* Player controls layout size */
|
||||
"Smaller" = "Smaller";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Sort" = "Sort";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Sort: %@" = "Sort: %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Source" = "Source";
|
||||
|
||||
/* SponsorBlock category name */
|
||||
"Sponsor" = "Sponsor";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SponsorBlock" = "SponsorBlock";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SponsorBlock API Instance" = "SponsorBlock API Instance";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Subscribe" = "Subscribe";
|
||||
|
||||
/* Subscriptions title */
|
||||
"Subscriptions" = "Subscriptions";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Switch to other public location" = "Switch to other public location";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Switch to public locations" = "Switch to public locations";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"System controls buttons" = "System controls buttons";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"System controls show buttons for %@" = "System controls show buttons for %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"That's nice to hear. It is fun to deliver apps other people want to use. You can consider donating to the project or help by contributing to new features development." = "That's nice to hear. It is fun to deliver apps other people want to use. You can consider donating to the project or help by contributing to new features development.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"This cannot be reverted" = "This cannot be reverted";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"This cannot be reverted. You might need to switch between views or restart the app to see changes." = "This cannot be reverted. You might need to switch between views or restart the app to see changes.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"This information will be processed only on your device and used to connect you to the server in the specified country." = "This information will be processed only on your device and used to connect you to the server in the specified country.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"This will remove all your custom profiles and return their default values. This cannot be reverted." = "This will remove all your custom profiles and return their default values. This cannot be reverted.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Thumbnails" = "Thumbnails";
|
||||
|
||||
/* Video date filter in search */
|
||||
"Today" = "Today";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Trending" = "Trending";
|
||||
|
||||
/* Player controls layout size for TV */
|
||||
"TV" = "TV";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Typically near or at the end of the video when the credits pop up and/or endcards are shown." = "Typically near or at the end of the video when the credits pop up and/or endcards are shown.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"unknown" = "unknown";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Unsubscribe" = "Unsubscribe";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Upload date" = "Upload date";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"URL" = "URL";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Used to create links from videos, channels and playlists" = "Used to create links from videos, channels and playlists";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Username" = "Username";
|
||||
|
||||
/* Player controls layout size */
|
||||
"Very Large" = "Very Large";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Videos" = "Videos";
|
||||
|
||||
/* Video sort order in search */
|
||||
"Views" = "Views";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Watched" = "Watched";
|
||||
|
||||
/* Selected video was played on given date */
|
||||
"Watched %@" = "Watched %@";
|
||||
|
||||
/* Selected video is being played */
|
||||
"Watching now" = "Watching now";
|
||||
|
||||
/* Video date filter in search */
|
||||
"Week" = "Week";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Welcome" = "Welcome";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"When partially watched video is played" = "When partially watched video is played";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Wi-Fi" = "Wi-Fi";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Wiki" = "Wiki";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Yattee" = "Yattee";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Yattee %@ (build %@)" = "Yattee %@ (build %@)";
|
||||
|
||||
/* Video date filter in search */
|
||||
"Year" = "Year";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can find information about using Yattee in the Wiki pages." = "You can find information about using Yattee in the Wiki pages.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can use automatic profile selection based on current device status or switch it in video playback settings controls." = "You can use automatic profile selection based on current device status or switch it in video playback settings controls.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You have no Playlists" = "You have no Playlists";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You have no playlists\n\nTap on \"New Playlist\" to create one" = "You have no playlists\n\nTap on \"New Playlist\" to create one";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You need to create an instance and accounts\nto access %@ section" = "You need to create an instance and accounts\nto access %@ section";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You need to select an account\nto access %@ section" = "You need to select an account\nto access %@ section";
|
||||
|
976
Shared/pl.lproj/Localizable.strings
Normal file
976
Shared/pl.lproj/Localizable.strings
Normal file
@ -0,0 +1,976 @@
|
||||
/* No comment provided by engineer. */
|
||||
" subscribers" = " subskrybentów";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"#" = "#";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%@" = "%@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%@ %@" = "%@ %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%@ Channel" = "Kanał %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%@ Playlist" = "Playlista %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%@ subscribers" = "%@ subskrybentów";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%lld" = "%lld";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%lld videos" = "%lld wideo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"%lld%%" = "%lld%%";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"1 century ago" = "Dawno temu";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"1,234M" = "1,234M";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"10 seconds forwards/backwards" = "Przewijanie o 10 sekund";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"1234" = "1234";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"a" = "a";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"A" = "A";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Accounts" = "Konta";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Accounts are not supported for the application of this instance" = "Konta nie są obsługiwane dla tej instancji";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add Account" = "Dodaj konto";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add Account..." = "Dodaj konto…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add Location" = "Dodaj lokalizację";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add Location..." = "Dodaj lokalizację…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add profile..." = "Dodaj profil…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add Quality Profile" = "Dodaj profil jakości";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add to %@" = "Dodaj do %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add to Favorites" = "Dodaj do ulubionych";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add to Playlist" = "Dodaj do playlisty";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Add to Playlist..." = "Dodaj do playlisty...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Advanced" = "Zaawansowane";
|
||||
|
||||
/* Trending category, section containing all kinds of videos */
|
||||
"All" = "Wszystkie";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Always use AVPlayer for live videos" = "Zawsze używaj AVPlayera z filmami na żywo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Anonymous" = "Anonim";
|
||||
|
||||
/* Video date filter in search
|
||||
Video duration filter in search */
|
||||
"Any" = "Dowolna";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Apply to all" = "Zastosuj do wszystkich";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Are you sure you want to clear history of watched videos?" = "Czy na pewno usunąć historię oglądania filmów?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Are you sure you want to clear search history?" = "Czy na pewno usunąć historię wyszukiwania?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Are you sure you want to delete playlist?" = "Czy na pewno usunąć playlistę?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Are you sure you want to restore default quality profiles?" = "Czy na pewno przywrócić domyślne profile jakości?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Are you sure you want to unsubscribe from %@?" = "Czy na pewno chcesz przestać subskrybować kanał %@?";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Automatic" = "Automatyczny";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Autoplaying Next" = "Wybrany do kolejki";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Backend" = "Silnik";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Badge" = "Znaczek";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Badge & Decreased opacity" = "Znaczek i przezroczystość";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Badge color" = "Kolor znaczka";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Based on system color scheme" = "Schemat kolorów systemu";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Battery" = "Bateria";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Blue" = "Niebieski";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Browsing" = "Przeglądanie";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Buffering stream..." = "Buforowanie strumienia…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Bugs and great feature ideas can be sent to the GitHub issues tracker. " = "Błędy i wspaniałe pomysły na nowe funkcje wyślij na GitHub Issues ";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Button" = "Przycisk";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"cache-pause-wait" = "cache-pause-wait";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"cache-secs" = "cache-secs";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Cancel" = "Anuluj";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Captions" = "Napisy";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Categories to Skip" = "Kategorie do pomijania";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Category" = "Kategoria";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Cellular" = "Sieć komórkowa";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Chapters" = "Rozdziały";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Charging" = "Ładowanie";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Clear" = "Wyczyść";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Clear All" = "Wyczyść wszystko";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Clear All Recents" = "Wyczyść ostatnie";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Clear History" = "Wyczyść historię";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Clear Search History" = "Wyczyść historię wyszukiwania";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Clear Search History..." = "Wyczyść historię wyszukiwania...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Clear the queue" = "Wyczyść kolejkę";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Close" = "Zamknij";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Close PiP and open player when application enters foreground" = "Zamknij PiP i otwórz odtwarzacz przy wejściu na pierwszy plan";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Close PiP when player is opened" = "Zamknij PiP przy otwarciu odtwarzacza";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Close PiP when starting playing other video" = "Zamknij PiP przy rozpoczęciu odtwarzania innego filmu";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Close player when closing video" = "Zamknij odtwarzacz przy zamknięciu wideo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Close player when starting PiP" = "Zamknij odtwarzacz przy uruchomieniu PiP";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Close Video" = "Zamknij wideo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Close video after playing last in the queue" = "Zamknij wideo po odtworzeniu ostatniego w kolejce";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Comments" = "Komentarze";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connected successfully (%@)" = "Połączono (%@)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Connection failed" = "Błąd połączenia";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Contact" = "Kontakt";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Continue" = "Kontynuuj";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Continue from %@" = "Kontynuuj od %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Contributing" = "Współpraca nad rozwojem";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Controls" = "Kontrolki";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Copy %@ link" = "Kopiuj link do %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Copy %@ link with time" = "Kopiuj link do %@ wraz z czasem";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Could not load locations manifest" = "Nie można wczytać publicznej listy instancji";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Country" = "Kraj";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Country Name or Code" = "Nazwa kraju lub kod";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Create Playlist" = "Dodaj playlistę";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Current: %@\n%@" = "Aktualnie: %@\n%@";
|
||||
|
||||
/* Locations settings, custom instance is selected as current */
|
||||
"Custom" = "Własna";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Custom Locations" = "Własne lokalizacje";
|
||||
|
||||
/* Video sort order in search */
|
||||
"Date" = "Data";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Decrease rate" = "Zmniejsz prędkość odtwarzania";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Decreased opacity" = "Zwiększona przezroczystość";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Delete" = "Usuń";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Disabled" = "Wyłączone";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Discord Server" = "Serwer Discorda";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Discussions take place in Discord and Matrix. It's a good spot for general questions." = "Dysktujemy na Discordzie i Matrixie. To dobre miejsca na ogólne pytania.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Don't use public locations" = "Nie używaj publicznych lokalizacji";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Donations" = "Wsparcie";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Done" = "Gotowe";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Duration" = "Długość";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Edit" = "Edytuj";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Edit Playlist" = "Edytuj playlistę";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Edit Quality Profile" = "Edytuj profil jakości";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Edit..." = "Edytuj...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Enable logging" = "Włącz logowanie";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Enable Return YouTube Dislike" = "Włącz łapki w dół (Return YouTube Dislike)";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Enter fullscreen in landscape" = "W poziomej orientacji uruchom tryb pełnoekranowy";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Error" = "Błąd";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Error when accessing playlist" = "Błąd podczas pobierania playlisty";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Explicit reminders to like, subscribe or interact with them on any paid or free platform(s) (e.g. click on a video)." = "Wyraźne przypomnienia, aby polubić, zasubskrybować lub wejść w interakcję z nimi na jakiejkolwiek płatnej lub bezpłatnej platformie (np. kliknąć na wideo).";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Favorites" = "Ulubione";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Filter" = "Filtr";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Filter: active" = "Filtr: aktywny";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Find Other" = "Znajdź coś innego";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Finding something to play..." = "Szukanie następnego filmu...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"For videos which feature music as the primary content." = "Dla filmów, których główną treścią jest muzyka.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Formats will be selected in order as listed.\nHLS is an adaptive format (resolution setting does not apply)." = "Formaty będą wybierane w kolejności tak jak wyżej.\nHLS to format adaptacyjny (ustawienie rozdzielczości nie ma zastosowania).";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Frontend URL" = "Adres frontendu";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Fullscreen size" = "Rozmiar pełnoekranowy";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Fullscreen Size" = "Pełen ekran";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Gaming" = "Gry";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Help" = "Pomoc";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Hide sidebar" = "Ukryj pasek boczny";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"High" = "Wysoka";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Highest" = "Najwyższa";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Highest quality" = "Najwyższa jakość";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"History" = "Historia";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Honor orientation lock" = "Honoruj blokadę orientacji systemu";
|
||||
|
||||
/* Video date filter in search */
|
||||
"Hour" = "Godzina";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"I am lost" = "Nic tu nie ogarniam";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"I found a bug /" = "Znalazłem błąd /";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"I have a feature request" = "Mam prośbę o dodanie funkcji";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"I like this app!" = "Podoba mi się ta aplikacja!";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"I want to ask a question" = "Chcę zadać pytanie";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"If you are interested what's coming in future updates, you can track project Milestones." = "Jeśli interesuje Cię przyszłość projektu, śledź GitHubowe Milestone'y.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"If you are reporting a bug, include all relevant details (especially: app version, used device and system version, steps to reproduce)." = "Jeśli zgłaszasz błąd, dołącz potrzebne informacje (takie jak: wersja aplikacji, rodzaj urządzenia i jego wersja systemu, lista kroków do zreprodukowania).";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Increase rate" = "Zwiększ prędkość";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Info" = "Info";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Instance of current account" = "Instancja aktualnie wybranego konta";
|
||||
|
||||
/* SponsorBlock category name */
|
||||
"Interaction" = "Interakcja";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Interface" = "Interfejs";
|
||||
|
||||
/* SponsorBlock category name */
|
||||
"Intro" = "Wprowadzenie";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Issues Tracker" = "Śledzenie błędów";
|
||||
|
||||
/* Selected video has just finished playing */
|
||||
"Just watched" = "Właśnie obejrzane";
|
||||
|
||||
/* Player controls layout size */
|
||||
"Large" = "Duży";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Large layout is not suitable for all devices and using it may cause controls not to fit on the screen." = "Duże rozmiary nie są przeznaczone dla wszystkich urządzeń, użycie ich może spowodować że przyciski nie będą mieścić się na ekranie.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"LIVE" = "LIVE";
|
||||
|
||||
/* Loading stream OSD */
|
||||
"Loading streams..." = "Ładowanie strumieni...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Loading..." = "Ładowanie…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Locations" = "Lokalizacje";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Lock portrait mode" = "Zablokuj tryb portretowy";
|
||||
|
||||
/* Video duration filter in search */
|
||||
"Long" = "Długie";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Low" = "Niska";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Low quality" = "Niska jakość";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Lowest" = "Najniższa";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Mark as watched" = "Oznacz jako obejrzane";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Mark video as watched after playing" = "Oznacz jako obejrzane po odtworzeniu";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Mark watched videos with" = "Oznacz obejrzane wideo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Matrix Channel" = "Kanał Matrix";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Matrix Chat" = "Chat Matrix";
|
||||
|
||||
/* Player controls layout size */
|
||||
"Medium" = "Średni";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Medium quality" = "Średnia jakość";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Milestones" = "Kamienie milowe";
|
||||
|
||||
/* Video date filter in search */
|
||||
"Month" = "Miesiąc";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"More info can be found in:" = "Więcej informacji można znaleźć tutaj:";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Movies" = "Filmy";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"MPV Documentation" = "Dokumentacja MPV";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Music" = "Muzyka";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Name" = "Nazwa";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"New Playlist" = "Nowa playlista";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Next" = "Następny";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"No description" = "Brak opisu";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"No Playlists" = "Brak playlist";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"No results" = "Brak wyników";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Normal" = "Normalna";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Not available" = "Niedostępne";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Not Playing" = "Nie odtwarza";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Nothing" = "Nic";
|
||||
|
||||
/* SponsorBlock category name */
|
||||
"Offtopic in Music Videos" = "Offtopic w teledyskach";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Only when signed in" = "Tylko gdy zalogowany";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Open \"Playlists\" tab to create new one" = "Otwórz \"Playlisty\" aby stworzyć nową";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Open Settings" = "Otwórz Ustawienia";
|
||||
|
||||
/* Loading stream OSD */
|
||||
"Opening %@ stream..." = "Otwieranie strumienia %@…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Opening audio stream..." = "Otwieranie strumienia audio...";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Orientation" = "Orientacja";
|
||||
|
||||
/* SponsorBlock category name */
|
||||
"Outro" = "Outro";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Part of a video promoting a product or service not directly related to the creator. The creator will receive payment or compensation in the form of money or free products." = "Część filmu promująca produkt lub usługę niezwiązaną bezpośrednio z twórcą. Twórca otrzyma zapłatę lub rekompensatę w postaci pieniędzy lub darmowych produktów.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Password" = "Hasło";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Pause" = "Pauza";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Pause when entering background" = "Zatrzymaj w tle";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Pause when player is closed" = "Zatrzymaj przy zamykaniu odtwarzacza";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Picture in Picture" = "Obraz w obrazie";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play" = "Odtwarzaj";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play All" = "Odtwórz wszystkie";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play in PiP" = "Otwórz w PiP";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play Last" = "Odtwórz jako ostatni";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play Music" = "Odtwarzaj muzykę";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play Next" = "Odtwarzaj następne";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Play Now" = "Odtwórz teraz";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Playback" = "Odtwarzanie";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Player" = "Odtwarzacz";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Playlist" = "Playlista";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Playlist \"%@\" will be deleted.\nIt cannot be reverted." = "Playlista \"%@\" zostanie usunięta.\nNie można tego cofnąć.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Playlists" = "Playlisty";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Popular" = "Popularne";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Preferred Formats" = "Preferowane formaty";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Profiles" = "Profile";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Promoting a product or service that is directly related to the creator themselves. This usually includes merchandise or promotion of monetized platforms." = "Promowanie produktu lub usługi bezpośrednio związanej z samym twórcą. Zwykle obejmuje to towary lub promocję platform, na których można zarabiać.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Proxy videos" = "Używaj proxy do odtwarzania wideo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Public Locations" = "Publiczne lokalizacje";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Public Manifest" = "Manifest publiczny";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Quality" = "Jakość";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Quality Profile" = "Profil jakości";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Queue" = "Kolejka";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Queue is empty" = "Kolejka jest pusta";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Rate" = "Prędkość";
|
||||
|
||||
/* Video sort order in search */
|
||||
"Rating" = "Ocena";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Recents" = "Ostatnie";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Red" = "Czerwony";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Refresh" = "Odśwież";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Regular size" = "Regularny rozmiar";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Regular Size" = "Zwykły rozmiar";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Related" = "Powiązane";
|
||||
|
||||
/* Video sort order in search */
|
||||
"Relevance" = "Dopasowanie";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Remove" = "Usuń";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Remove from Favorites" = "Usuń z ulubionych";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Remove from history" = "Usuń z historii";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Remove from Playlist" = "Usuń z playlisty";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Remove from the queue" = "Usuń z kolejki";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Replies" = "Odpowiedzi";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset" = "Zresetuj";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset search filters" = "Zresetuj filtry";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Reset watched status when playing again" = "Resetuj status odtwarzania za każdym odtworzeniem";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Resolution" = "Rozdzielczość";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Restart" = "Od początku";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Restart the app to apply the settings above." = "Zrestartuj aplikację aby zastosować powyższe ustawienia.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Restart/Play next" = "Od początku/Następny";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Restore default profiles..." = "Przywróć domyślne profile…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Rotate to portrait when exiting fullscreen" = "Obróć do trybu portretowego przy zamykaniu pełnego ekranu";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Round corners" = "Zaokrąglaj rogi";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Save" = "Zapisz";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Save history of played videos" = "Zapisuj historię oglądania";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Save history of searches, channels and playlists" = "Zapisuj historię wyszukiwania, kanały i playlisty";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Search" = "Szukaj";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Search history is empty" = "Historia wyszukiwania jest pusta";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Search..." = "Szukaj…";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Sections" = "Sekcje";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Seek gesture sensitivity" = "Czułość gestu przewijania";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Seek gesture speed" = "Prędkość gestu przewijania";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Seek with horizontal swipe on video" = "Przewijaj wideo gestem poziomym";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Segments typically found at the start of a video that include an animation, still frame or clip which are also seen in other videos by the same creator." = "Segmenty, które zwykle znajdują się na początku filmu, zawierają animację, nieruchomą klatkę lub klip, które są również widoczne w innych filmach tego samego twórcy.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Select location closest to you:" = "Wybierz najbliższą lokalizację:";
|
||||
|
||||
/* SponsorBlock category name */
|
||||
"Self-promotion" = "Autopromocja";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Settings" = "Ustawienia";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share %@ link" = "Udostępnij link do %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share %@ link with time" = "Udostępnij link do %@ wraz z czasem";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Share..." = "Udostępnij…";
|
||||
|
||||
/* Video duration filter in search */
|
||||
"Short" = "Krótkie";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show account username" = "Pokaż nazwę konta";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show anonymous accounts" = "Pokaż anonimowe konta";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show channel name" = "Pokaż nazwę kanału";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show history" = "Pokaż historię";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show keywords" = "Pokaż słowa kluczowe";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show playback statistics" = "Pokaż statystyki odtwarzania";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show progress of watching on thumbnails" = "Pokazuj postęp odtwarzania na miniaturkach";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show sidebar when space permits" = "Pokazuj pasek boczny gdy jest na to miejsce";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Show video length" = "Pokaż długość wideo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Shuffle" = "Mieszaj";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Shuffle All" = "Mieszaj wszystkie";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Sidebar" = "Pasek boczny";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Sign In Required" = "Wymagane logowanie";
|
||||
|
||||
/* Player controls layout size */
|
||||
"Small" = "Mały";
|
||||
|
||||
/* Player controls layout size */
|
||||
"Smaller" = "Mniejszy";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Sort" = "Sortuj";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Sort: %@" = "Sortowanie: %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Source" = "Źródło";
|
||||
|
||||
/* SponsorBlock category name */
|
||||
"Sponsor" = "Sponsor";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SponsorBlock" = "SponsorBlock";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SponsorBlock API Instance" = "Instancja SponsorBlock";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Subscribe" = "Subskrybuj";
|
||||
|
||||
/* Subscriptions title */
|
||||
"Subscriptions" = "Subskrybcje";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Switch to other public location" = "Przełącz publiczną lokalizację na inną";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Switch to public locations" = "Przełącz na publiczne lokalizacje";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"System controls buttons" = "Przyciski w systemowych kontrolkach";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"System controls show buttons for %@" = "Kontrolki systemu pokazują przyciski: %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"That's nice to hear. It is fun to deliver apps other people want to use. You can consider donating to the project or help by contributing to new features development." = "Miło to słyszeć. Fajnie jest dostarczać aplikacje, których inni ludzie chcą używać. Możesz rozważyć przekazanie darowizny na rzecz projektu lub pomóc poprzez przyczynienie się do rozwoju nowych funkcji.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"This cannot be reverted" = "Nie można tego cofnąć";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"This cannot be reverted. You might need to switch between views or restart the app to see changes." = "Nie można tego cofnąć. Ponowne uruchomienie aplikacji może być wymagane aby zobaczyć zmiany.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"This information will be processed only on your device and used to connect you to the server in the specified country." = "Ta informacja będzie przetwarzana tylko na tym urządzeniu aby połączyć się z serwerem najbliższym do podnego kraju. ";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"This will remove all your custom profiles and return their default values. This cannot be reverted." = "Twoje profile zostaną usunięte i przywrócone zostaną domyślne. Nie można tego cofnąć.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Thumbnails" = "Miniaturki";
|
||||
|
||||
/* Video date filter in search */
|
||||
"Today" = "Dziś";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Trending" = "Na czasie";
|
||||
|
||||
/* Player controls layout size for TV */
|
||||
"TV" = "TV";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Typically near or at the end of the video when the credits pop up and/or endcards are shown." = "Zazwyczaj w pobliżu lub na końcu filmu, gdy pojawiają się napisy i/lub karty końcowe.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"unknown" = "nieznany";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Unsubscribe" = "Odsubskrybuj";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Upload date" = "Data dodania";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"URL" = "Adres";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Used to create links from videos, channels and playlists" = "Do tworzenia linków wideo, kanałów i playlist";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Username" = "Nazwa użytkownika";
|
||||
|
||||
/* Player controls layout size */
|
||||
"Very Large" = "Bardzo duży";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Videos" = "Wideo";
|
||||
|
||||
/* Video sort order in search */
|
||||
"Views" = "Wyświetlenia";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Watched" = "Obejrzane";
|
||||
|
||||
/* Selected video was played on given date */
|
||||
"Watched %@" = "Obejrzano %@";
|
||||
|
||||
/* Selected video is being played */
|
||||
"Watching now" = "Oglądane teraz";
|
||||
|
||||
/* Video date filter in search */
|
||||
"Week" = "Tydzień";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Welcome" = "Witaj";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"When partially watched video is played" = "Gdy odtwarzane jest poprzednio widziane wideo";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Wi-Fi" = "Wi-Fi";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Wiki" = "Wiki";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Yattee" = "Yattee";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"Yattee %@ (build %@)" = "Yattee %@ (build %@)";
|
||||
|
||||
/* Video date filter in search */
|
||||
"Year" = "Rok";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can find information about using Yattee in the Wiki pages." = "Trochę informacji jak używać Yattee możesz znaleźć w Wiki.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You can use automatic profile selection based on current device status or switch it in video playback settings controls." = "Możesz używać automatycznego wybierania profilu albo wybrać inny z ustawień odtwarzania wideo.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You have no Playlists" = "Nie masz żadnych playlist";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You have no playlists\n\nTap on \"New Playlist\" to create one" = "Nie masz żadnych list odtwarzania\n\nStuknij w \"Nowa lista odtwarzania\", aby ją stworzyć";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You need to create an instance and accounts\nto access %@ section" = "Musisz dodać instancję i konto\naby otworzyć sekcję: %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"You need to select an account\nto access %@ section" = "Musisz wybrać konto\naby otworzyć sekcję: %@";
|
||||
|
@ -186,6 +186,9 @@
|
||||
371F2F1C269B43D300E4A7AB /* NavigationModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 371F2F19269B43D300E4A7AB /* NavigationModel.swift */; };
|
||||
3722AEBC274DA396005EA4D6 /* Badge+Backport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3722AEBB274DA396005EA4D6 /* Badge+Backport.swift */; };
|
||||
3722AEBE274DA401005EA4D6 /* Backport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3722AEBD274DA401005EA4D6 /* Backport.swift */; };
|
||||
37270F1C28E06E3E00856150 /* String+Localizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37270F1B28E06E3E00856150 /* String+Localizable.swift */; };
|
||||
37270F1D28E06E3E00856150 /* String+Localizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37270F1B28E06E3E00856150 /* String+Localizable.swift */; };
|
||||
37270F1E28E06E3E00856150 /* String+Localizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37270F1B28E06E3E00856150 /* String+Localizable.swift */; };
|
||||
3727B74A27872A920021C15E /* VisualEffectBlur-iOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3727B74927872A920021C15E /* VisualEffectBlur-iOS.swift */; };
|
||||
3727B74B27872B880021C15E /* VisualEffectBlur-macOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3727B74727872A500021C15E /* VisualEffectBlur-macOS.swift */; };
|
||||
3729037E2739E47400EA99F6 /* MenuCommands.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3729037D2739E47400EA99F6 /* MenuCommands.swift */; };
|
||||
@ -356,6 +359,9 @@
|
||||
37599F38272B4D740087F250 /* FavoriteButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37599F37272B4D740087F250 /* FavoriteButton.swift */; };
|
||||
37599F39272B4D740087F250 /* FavoriteButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37599F37272B4D740087F250 /* FavoriteButton.swift */; };
|
||||
37599F3A272B4D740087F250 /* FavoriteButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37599F37272B4D740087F250 /* FavoriteButton.swift */; };
|
||||
375B537428DF6CBB004C1D19 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 375B537828DF6CBB004C1D19 /* Localizable.strings */; };
|
||||
375B537528DF6CBB004C1D19 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 375B537828DF6CBB004C1D19 /* Localizable.strings */; };
|
||||
375B537628DF6CBB004C1D19 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 375B537828DF6CBB004C1D19 /* Localizable.strings */; };
|
||||
375B8AB128B57F4200397B31 /* KeychainAccess in Frameworks */ = {isa = PBXBuildFile; productRef = 375B8AB028B57F4200397B31 /* KeychainAccess */; };
|
||||
375B8AB328B580D300397B31 /* KeychainModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 375B8AB228B580D300397B31 /* KeychainModel.swift */; };
|
||||
375B8AB428B580D300397B31 /* KeychainModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 375B8AB228B580D300397B31 /* KeychainModel.swift */; };
|
||||
@ -1040,6 +1046,7 @@
|
||||
3722AEBB274DA396005EA4D6 /* Badge+Backport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Badge+Backport.swift"; sourceTree = "<group>"; };
|
||||
3722AEBD274DA401005EA4D6 /* Backport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Backport.swift; sourceTree = "<group>"; };
|
||||
3722AEBF274DAEB8005EA4D6 /* Tint+Backport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Tint+Backport.swift"; sourceTree = "<group>"; };
|
||||
37270F1B28E06E3E00856150 /* String+Localizable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Localizable.swift"; sourceTree = "<group>"; };
|
||||
3727B74727872A500021C15E /* VisualEffectBlur-macOS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "VisualEffectBlur-macOS.swift"; sourceTree = "<group>"; };
|
||||
3727B74927872A920021C15E /* VisualEffectBlur-iOS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "VisualEffectBlur-iOS.swift"; sourceTree = "<group>"; };
|
||||
3729037D2739E47400EA99F6 /* MenuCommands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuCommands.swift; sourceTree = "<group>"; };
|
||||
@ -1111,6 +1118,8 @@
|
||||
37599F2F272B42810087F250 /* FavoriteItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoriteItem.swift; sourceTree = "<group>"; };
|
||||
37599F33272B44000087F250 /* FavoritesModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoritesModel.swift; sourceTree = "<group>"; };
|
||||
37599F37272B4D740087F250 /* FavoriteButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoriteButton.swift; sourceTree = "<group>"; };
|
||||
375B537728DF6CBB004C1D19 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
375B537928DF6CC4004C1D19 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
375B8AB228B580D300397B31 /* KeychainModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainModel.swift; sourceTree = "<group>"; };
|
||||
375DFB5726F9DA010013F468 /* InstancesModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstancesModel.swift; sourceTree = "<group>"; };
|
||||
375E45F427B1976B00BA7902 /* MPVOGLView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPVOGLView.swift; sourceTree = "<group>"; };
|
||||
@ -1181,6 +1190,7 @@
|
||||
37A3B16C27255E7F000FB5EE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
37A3B16D27255E7F000FB5EE /* Open in Yattee.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "Open in Yattee.entitlements"; sourceTree = "<group>"; };
|
||||
37A3B1792725735F000FB5EE /* Open in Yattee - iOS.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Open in Yattee - iOS.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
37A5967628C4EDD80055F98E /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
37A5DBC7285E371400CA4DD1 /* ControlBackgroundModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ControlBackgroundModifier.swift; sourceTree = "<group>"; };
|
||||
37A9965926D6F8CA006E3224 /* HorizontalCells.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HorizontalCells.swift; sourceTree = "<group>"; };
|
||||
37A9965D26D6F9B9006E3224 /* FavoritesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoritesView.swift; sourceTree = "<group>"; };
|
||||
@ -1930,6 +1940,7 @@
|
||||
37A3B15B27255E7F000FB5EE /* Resources */,
|
||||
37A3B16427255E7F000FB5EE /* content.js */,
|
||||
37A3B16C27255E7F000FB5EE /* Info.plist */,
|
||||
37BCBC4628C38D8E0088BE85 /* InfoPlist.strings */,
|
||||
37A3B16D27255E7F000FB5EE /* Open in Yattee.entitlements */,
|
||||
37A3B15927255E7F000FB5EE /* SafariWebExtensionHandler.swift */,
|
||||
);
|
||||
@ -1989,6 +2000,7 @@
|
||||
37F7AB4C28A9361F00FB46B5 /* UIDevice+Cellular.swift */,
|
||||
370B79CB286279BA0045DB77 /* UIViewController+HideHomeIndicator.swift */,
|
||||
3743CA51270F284F00E4D32B /* View+Borders.swift */,
|
||||
37270F1B28E06E3E00856150 /* String+Localizable.swift */,
|
||||
);
|
||||
path = Extensions;
|
||||
sourceTree = "<group>";
|
||||
@ -2035,6 +2047,7 @@
|
||||
372915E52687E3B900F5A35B /* Defaults.swift */,
|
||||
37D2E0D328B67EFC00F64D52 /* Delay.swift */,
|
||||
3761ABFC26F0F8DE00AA496F /* EnvironmentValues.swift */,
|
||||
375B537828DF6CBB004C1D19 /* Localizable.strings */,
|
||||
3729037D2739E47400EA99F6 /* MenuCommands.swift */,
|
||||
37B7958F2771DAE0001CF27B /* OpenURLHandler.swift */,
|
||||
37ECED55289FE166002BC2C9 /* SafeArea.swift */,
|
||||
@ -2547,6 +2560,7 @@
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
pl,
|
||||
Base,
|
||||
);
|
||||
mainGroup = 37D4B0BC2671614700C925CA;
|
||||
@ -2621,6 +2635,7 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
37D4B0E82671614900C925CA /* Assets.xcassets in Resources */,
|
||||
375B537428DF6CBB004C1D19 /* Localizable.strings in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -2629,6 +2644,7 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
37D4B0E92671614900C925CA /* Assets.xcassets in Resources */,
|
||||
375B537528DF6CBB004C1D19 /* Localizable.strings in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -2651,6 +2667,7 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
37D4B1862671691600C925CA /* Assets.xcassets in Resources */,
|
||||
375B537628DF6CBB004C1D19 /* Localizable.strings in Resources */,
|
||||
37D4B15F267164AF00C925CA /* Assets.xcassets in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@ -2891,6 +2908,7 @@
|
||||
378AE940274EDFB5006A4EE1 /* Tint+Backport.swift in Sources */,
|
||||
376BE50927347B5F009AD608 /* SettingsHeader.swift in Sources */,
|
||||
376527BB285F60F700102284 /* PlayerTimeModel.swift in Sources */,
|
||||
37270F1C28E06E3E00856150 /* String+Localizable.swift in Sources */,
|
||||
3722AEBE274DA401005EA4D6 /* Backport.swift in Sources */,
|
||||
37EFAC0828C138CD00ED9B89 /* ControlsOverlayModel.swift in Sources */,
|
||||
37F4AD2628613B81004D0F66 /* Color+Debug.swift in Sources */,
|
||||
@ -3235,6 +3253,7 @@
|
||||
3782B95E2755858100990149 /* NSTextField+FocusRingType.swift in Sources */,
|
||||
37C3A252272366440087A57A /* ChannelPlaylistView.swift in Sources */,
|
||||
3754B01628B7F84D009717C8 /* Constants.swift in Sources */,
|
||||
37270F1D28E06E3E00856150 /* String+Localizable.swift in Sources */,
|
||||
373CFADC269663F1003CB2C6 /* Thumbnail.swift in Sources */,
|
||||
37C0697B2725C09E00F7F6CB /* PlayerQueueItemBridge.swift in Sources */,
|
||||
37CFB48628AFE2510070024C /* VideoDescription.swift in Sources */,
|
||||
@ -3459,6 +3478,7 @@
|
||||
379775952689365600DD52A8 /* Array+Next.swift in Sources */,
|
||||
3752069F285E910600CA655F /* ChapterView.swift in Sources */,
|
||||
37F4AD1D28612B23004D0F66 /* OpeningStream.swift in Sources */,
|
||||
37270F1E28E06E3E00856150 /* String+Localizable.swift in Sources */,
|
||||
3705B180267B4DFB00704544 /* TrendingCountry.swift in Sources */,
|
||||
375B8AB528B580D300397B31 /* KeychainModel.swift in Sources */,
|
||||
373CFACD26966264003CB2C6 /* SearchQuery.swift in Sources */,
|
||||
@ -3544,6 +3564,26 @@
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
375B537828DF6CBB004C1D19 /* Localizable.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
375B537728DF6CBB004C1D19 /* pl */,
|
||||
375B537928DF6CC4004C1D19 /* en */,
|
||||
);
|
||||
name = Localizable.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
37BCBC4628C38D8E0088BE85 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
37A5967628C4EDD80055F98E /* pl */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
3712643F2865FF4500D77974 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
|
@ -36,7 +36,7 @@ struct InstancesSettings: View {
|
||||
}
|
||||
|
||||
if !selectedInstance.isNil, selectedInstance.app.supportsAccounts {
|
||||
SettingsHeader(text: "Accounts")
|
||||
SettingsHeader(text: "Accounts".localized())
|
||||
|
||||
let list = List(selection: $selectedAccount) {
|
||||
if selectedInstanceAccounts.isEmpty {
|
||||
@ -79,7 +79,7 @@ struct InstancesSettings: View {
|
||||
}
|
||||
|
||||
if selectedInstance != nil, selectedInstance.app.hasFrontendURL {
|
||||
SettingsHeader(text: "Frontend URL")
|
||||
SettingsHeader(text: "Frontend URL".localized())
|
||||
|
||||
TextField("Frontend URL", text: $frontendURL)
|
||||
.onChange(of: selectedInstance) { _ in
|
||||
|
Loading…
Reference in New Issue
Block a user