diff --git a/sailfish/qml/Constants.qml b/sailfish/qml/Constants.qml
index b4e3e71..3fc424e 100644
--- a/sailfish/qml/Constants.qml
+++ b/sailfish/qml/Constants.qml
@@ -1,6 +1,6 @@
/*
Sailfin: a Jellyfin client written using Qt
-Copyright (C) 2020 Chris Josten
+Copyright (C) 2020-2024 Chris Josten
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -59,7 +59,8 @@ QtObject {
}
}
- readonly property real libraryDelegatePosterHeight: libraryDelegateHeight * 1.5 // 1.6667
+ readonly property real libraryDelegatePosterRatio: 1.5
+ readonly property real libraryDelegatePosterHeight: libraryDelegateHeight * libraryDelegatePosterRatio
readonly property real libraryProgressHeight: Theme.paddingMedium
diff --git a/sailfish/qml/Utils.js b/sailfish/qml/Utils.js
index 5716697..3617720 100644
--- a/sailfish/qml/Utils.js
+++ b/sailfish/qml/Utils.js
@@ -1,6 +1,6 @@
/*
Sailfin: a Jellyfin client written using Qt
-Copyright (C) 2020 Chris Josten
+Copyright (C) 2020-2024 Chris Josten
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -52,7 +52,7 @@ function propsToQuery(options) {
for (var prop in options) {
if (options.hasOwnProperty(prop)) {
var value = options[prop];
- if (prop === "maxWidth" || prop === "maxHeight") {
+ if (prop === "maxWidth" || prop === "maxHeight" || prop === "width" || prop === "height") {
value = Math.floor(options[prop]);
}
query += "&" + prop + "=" + value;
diff --git a/sailfish/qml/components/PlayToolbar.qml b/sailfish/qml/components/PlayToolbar.qml
index c605d79..b721432 100644
--- a/sailfish/qml/components/PlayToolbar.qml
+++ b/sailfish/qml/components/PlayToolbar.qml
@@ -1,6 +1,6 @@
/*
Sailfin: a Jellyfin client written using Qt
-Copyright (C) 2020 Chris Josten
+Copyright (C) 2020-2024 Chris Josten
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -26,12 +26,13 @@ Column {
property real playProgress: 0.0
property bool favourited: false
property alias imageBlurhash: playImage.blurhash
+ property real maxHeight: parent.width / imageAspectRatio
signal playPressed(bool resume)
spacing: Theme.paddingLarge
BackgroundItem {
width: parent.width
- height: width / imageAspectRatio
+ height: Math.min(maxHeight, width / imageAspectRatio)
RemoteImage {
id: playImage
anchors.fill: parent
diff --git a/sailfish/qml/components/PlaybackBar.qml b/sailfish/qml/components/PlaybackBar.qml
index beb1b80..26048f1 100644
--- a/sailfish/qml/components/PlaybackBar.qml
+++ b/sailfish/qml/components/PlaybackBar.qml
@@ -1,6 +1,6 @@
/*
Sailfin: a Jellyfin client written using Qt
-Copyright (C) 2021 Chris Josten
+Copyright (C) 2021-2024 Chris Josten
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -18,7 +18,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
import QtQuick 2.6
-import QtMultimedia 5.6
import Sailfish.Silica 1.0
import nl.netsoj.chris.Jellyfin 1.0 as J
@@ -231,9 +230,9 @@ PanelBackground {
rightMargin: Theme.paddingMedium
verticalCenter: parent.verticalCenter
}
- icon.source: manager.playbackState === MediaPlayer.PlayingState
+ icon.source: manager.playbackState === J.PlayerState.Playing
? "image://theme/icon-m-pause" : "image://theme/icon-m-play"
- onClicked: manager.playbackState === MediaPlayer.PlayingState
+ onClicked: manager.playbackState === J.PlayerState.Playing
? manager.pause()
: manager.play()
}
diff --git a/sailfish/qml/pages/ConnectingPage.qml b/sailfish/qml/pages/ConnectingPage.qml
index 8cec2ce..299506f 100644
--- a/sailfish/qml/pages/ConnectingPage.qml
+++ b/sailfish/qml/pages/ConnectingPage.qml
@@ -2,6 +2,8 @@ import QtQuick 2.0
import Sailfish.Silica 1.0
Page {
+ allowedOrientations: Orientation.All
+
PageBusyIndicator {
running: true
}
diff --git a/sailfish/qml/pages/itemdetails/BaseDetailPage.qml b/sailfish/qml/pages/itemdetails/BaseDetailPage.qml
index 223aa90..b1cdeec 100644
--- a/sailfish/qml/pages/itemdetails/BaseDetailPage.qml
+++ b/sailfish/qml/pages/itemdetails/BaseDetailPage.qml
@@ -1,6 +1,6 @@
/*
Sailfin: a Jellyfin client written using Qt
-Copyright (C) 2020 Chris Josten
+Copyright (C) 2020-2024 Chris Josten
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -40,6 +40,9 @@ Page {
property string _chosenBackdropImage: ""
readonly property string parentId: itemData.parentId || ""
+ readonly property int gridColumnCount: Math.floor(pageRoot.width / Theme.itemSizeHuge)
+ readonly property int gridCellSize: Math.floor(pageRoot.width / gridColumnCount)
+
function updateBackdrop() {
/*var rand = 0;
if (itemData.backdropImageTags.length > 0) {
diff --git a/sailfish/qml/pages/itemdetails/CollectionPage.qml b/sailfish/qml/pages/itemdetails/CollectionPage.qml
index ce2c436..afb9104 100644
--- a/sailfish/qml/pages/itemdetails/CollectionPage.qml
+++ b/sailfish/qml/pages/itemdetails/CollectionPage.qml
@@ -63,9 +63,9 @@ BaseDetailPage {
id: gridView
anchors.fill: parent
model: collectionModel
- cellWidth: Constants.libraryDelegateWidth
- cellHeight: Utils.usePortraitCover(itemData.collectionType) ? Constants.libraryDelegatePosterHeight
- : Constants.libraryDelegateHeight
+ cellWidth: gridCellSize
+ cellHeight: Utils.usePortraitCover(itemData.collectionType) ? gridCellSize * Constants.libraryDelegatePosterRatio
+ : gridCellSize
visible: itemData.status !== J.LoaderBase.Error
header: PageHeader {
diff --git a/sailfish/qml/pages/itemdetails/MusicAlbumPage.qml b/sailfish/qml/pages/itemdetails/MusicAlbumPage.qml
index 5c72d1f..322b9a1 100644
--- a/sailfish/qml/pages/itemdetails/MusicAlbumPage.qml
+++ b/sailfish/qml/pages/itemdetails/MusicAlbumPage.qml
@@ -1,6 +1,6 @@
/*
Sailfin: a Jellyfin client written using Qt
-Copyright (C) 2020 Chris Josten
+Copyright (C) 2020-2024 Chris Josten
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -29,10 +29,8 @@ import "../.."
BaseDetailPage {
id: albumPageRoot
readonly property int _songIndexWidth: 100
- width: 800 * Theme.pixelRatio
-
property bool _collectionModelLoaded: false
- readonly property bool _twoColumns: albumPageRoot.width / Theme.pixelRatio >= 800
+ readonly property bool _twoColumns: gridColumnCount > 4
readonly property string _description: {
if (itemData.type === "MusicAlbum") {
//: Short description of the album: %1 -> album artist, %2 -> amount of songs, %3 -> duration, %4 -> release year
@@ -63,17 +61,7 @@ BaseDetailPage {
RowLayout {
anchors.fill: parent
- Item {height: 1; width: Theme.horizontalPageMargin; visible: wideAlbumCover.visible; }
- Loader {
- id: wideAlbumCover
- visible: _twoColumns
- Layout.minimumWidth: 1000 / Theme.pixelRatio
- Layout.fillHeight: true
- source: visible
- ? "../../components/music/WideAlbumCover.qml" : ""
- onLoaded: bindAlbum(item)
- }
- Item {height: 1; width: Theme.horizontalPageMargin; visible: wideAlbumCover.visible; }
+
SilicaListView {
id: list
Layout.fillHeight: true
@@ -101,6 +89,17 @@ BaseDetailPage {
VerticalScrollDecorator {}
}
+ Item {height: 1; width: Theme.paddingLarge; visible: wideAlbumCover.visible; }
+ Loader {
+ id: wideAlbumCover
+ visible: _twoColumns
+ Layout.minimumWidth: gridCellSize * 2
+ Layout.fillHeight: true
+ source: visible
+ ? "../../components/music/WideAlbumCover.qml" : ""
+ onLoaded: bindAlbum(item)
+ }
+ Item {height: 1; width: Theme.horizontalPageMargin; visible: wideAlbumCover.visible; }
}
function bindAlbum(item) {
diff --git a/sailfish/qml/pages/itemdetails/MusicArtistPage.qml b/sailfish/qml/pages/itemdetails/MusicArtistPage.qml
index 414628d..48ce3e1 100644
--- a/sailfish/qml/pages/itemdetails/MusicArtistPage.qml
+++ b/sailfish/qml/pages/itemdetails/MusicArtistPage.qml
@@ -1,6 +1,6 @@
/*
Sailfin: a Jellyfin client written using Qt
-Copyright (C) 2022 Chris Josten
+Copyright (C) 2022-2024 Chris Josten
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -107,7 +107,7 @@ BaseDetailPage {
left: parent.left
right: parent.right
}
- height: width / 16 * 9
+ height: Math.min(albumPage.height / 2, width / 16 * 9)
fillMode: Image.PreserveAspectCrop
source: Utils.itemBackdropUrl(apiClient.baseUrl, itemData, 0, {"maxWidth": parent.width})
blurhash: itemData.imageBlurHashes["Backdrop"][itemData.backdropImageTags[0]]
@@ -219,15 +219,14 @@ BaseDetailPage {
"pageTitle": qsTr("Discography of %1").arg(itemData.name)
})
}
+
GridLayout {
- width: parent.width
- columns: 3
+ anchors.left: parent.left
+ width: Math.min(appearsOnModel.count() * gridCellSize, gridColumnCount * gridCellSize)
+ columns: gridColumnCount
columnSpacing: 0
rowSpacing: 0
- anchors {
- left: parent.left
- right: parent.right
- }
+
Repeater {
id: albumRepeater
model: albumsModel
@@ -237,8 +236,8 @@ BaseDetailPage {
poster: Utils.itemModelImageUrl(appWindow.apiClient.baseUrl, model.jellyfinId, model.imageTags["Primary"], "Primary", {"height": height})
blurhash: model.imageBlurHashes["Primary"][model.imageTags["Primary"]]
title: model.name
- Layout.preferredWidth: Constants.libraryDelegateWidth * _multiplier
- Layout.preferredHeight: Constants.libraryDelegateHeight * _multiplier
+ Layout.preferredWidth: gridCellSize * _multiplier
+ Layout.preferredHeight: gridCellSize * _multiplier
Layout.rowSpan: _multiplier
Layout.columnSpan: _multiplier
onClicked: appWindow.navigateToItem(model.jellyfinId, model.mediaType, model.type, model.isFolder)
@@ -256,14 +255,13 @@ BaseDetailPage {
})
}
GridLayout {
- width: parent.width
- columns: 3
+ anchors.left: parent.left
+ width: Math.min(appearsOnModel.count() * gridCellSize, gridColumnCount * gridCellSize)
+
+ columns: gridColumnCount
columnSpacing: 0
rowSpacing: 0
- anchors {
- left: parent.left
- right: parent.right
- }
+
Repeater {
id: appearsOnRepeater
model: appearsOnModel
@@ -274,8 +272,9 @@ BaseDetailPage {
blurhash: model.imageBlurHashes["Primary"][model.imageTags["Primary"]]
title: model.name
Layout.alignment: Qt.AlignLeft | Qt.AlignTop
- Layout.preferredWidth: Constants.libraryDelegateWidth * _multiplier
- Layout.preferredHeight: Constants.libraryDelegateHeight * _multiplier
+ Layout.preferredWidth: gridCellSize * _multiplier
+ Layout.maximumWidth: gridCellSize * _multiplier
+ Layout.preferredHeight: gridCellSize * _multiplier
Layout.fillWidth: false
Layout.fillHeight: false
onClicked: appWindow.navigateToItem(model.jellyfinId, model.mediaType, model.type, model.isFolder)
diff --git a/sailfish/qml/pages/itemdetails/SeasonPage.qml b/sailfish/qml/pages/itemdetails/SeasonPage.qml
index cf1e604..1134b64 100644
--- a/sailfish/qml/pages/itemdetails/SeasonPage.qml
+++ b/sailfish/qml/pages/itemdetails/SeasonPage.qml
@@ -1,6 +1,6 @@
/*
Sailfin: a Jellyfin client written using Qt
-Copyright (C) 2020 Chris Josten
+Copyright (C) 2020-2024 Chris Josten
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -58,7 +58,7 @@ BaseDetailPage {
id: episodeImage
anchors {
top: parent.top
- left: parent.left
+ right: parent.right
bottom: parent.bottom
}
width: Constants.libraryDelegateWidth
@@ -116,11 +116,11 @@ BaseDetailPage {
Label {
id: episodeTitle
anchors {
- left: episodeImage.right
- leftMargin: Theme.paddingLarge
+ right: episodeImage.left
+ rightMargin: Theme.paddingLarge
top: parent.top
- right: parent.right
- rightMargin: Theme.horizontalPageMargin
+ left: parent.left
+ leftMargin: Theme.horizontalPageMargin
}
text: model.name
truncationMode: TruncationMode.Fade
@@ -130,10 +130,10 @@ BaseDetailPage {
Label {
id: episodeOverview
anchors {
- left: episodeImage.right
- leftMargin: Theme.paddingLarge
- right: parent.right
- rightMargin: Theme.horizontalPageMargin
+ right: episodeImage.left
+ rightMargin: Theme.paddingLarge
+ left: parent.left
+ leftMargin: Theme.horizontalPageMargin
top: episodeTitle.bottom
bottom: parent.bottom
}
diff --git a/sailfish/qml/pages/itemdetails/VideoPage.qml b/sailfish/qml/pages/itemdetails/VideoPage.qml
index ae5bf66..dc9a244 100644
--- a/sailfish/qml/pages/itemdetails/VideoPage.qml
+++ b/sailfish/qml/pages/itemdetails/VideoPage.qml
@@ -63,6 +63,7 @@ BaseDetailPage {
imageSource: detailPage.imageSource
imageAspectRatio: Constants.horizontalVideoAspectRatio
imageBlurhash: detailPage.imageBlurhash
+ maxHeight: detailPage.height / 2
Binding on favourited {
when: _userdataReady
value: itemData.userData.favorite
diff --git a/sailfish/qml/pages/setup/LoginDialog.qml b/sailfish/qml/pages/setup/LoginDialog.qml
index 31dac6a..e0643be 100644
--- a/sailfish/qml/pages/setup/LoginDialog.qml
+++ b/sailfish/qml/pages/setup/LoginDialog.qml
@@ -42,6 +42,7 @@ Dialog {
acceptDestination: Page {
+ allowedOrientations: Orientation.All
BusyLabel {
text: qsTr("Logging in as %1").arg(username.text)
running: true
diff --git a/sailfish/translations/harbour-sailfin-de.ts b/sailfish/translations/harbour-sailfin-de.ts
index ff4ad46..b23996f 100644
--- a/sailfish/translations/harbour-sailfin-de.ts
+++ b/sailfish/translations/harbour-sailfin-de.ts
@@ -4,30 +4,36 @@
AboutPage
+
About Sailfin
- Open externally
-
-
-
- LGPL 2.1 License
-
-
-
+
<p><b>Sailfin version %1</b><br/>Copyright © Chris Josten 2020–%2</p><p>Sailfin is Free Software licensed under the <a href='lgpl'>LGPL-v2.1</a> or later, at your choice. You can <a href="github">view its source code on GitHub</a>. Parts of the code of Sailfin are from other libraries. <a href='3rdparty'>View their licenses here</a>.</p>
+
Contributors
SectionHeader
+
+
+ Open externally
+
+
+
+
+ LGPL 2.1 License
+
+
AddServerConnectingPage
+
Connecting to %1
@@ -35,30 +41,37 @@
AddServerPage
+
Connect
+
Connect to Jellyfin
+
Server
+
Sailfin will try to search for Jellyfin servers on your local network automatically
+
enter address manually
+
Server address
+
e.g. https://demo.jellyfin.org
@@ -66,10 +79,12 @@
BaseDetailPage
+
Retry
+
An error has occured
@@ -77,106 +92,121 @@
CollectionPage
+
Loading
- Sort by
- Menu item for selecting the sort order of a collection
-
-
-
- Empty collection
-
-
-
- Add some items to this collection!
-
-
-
- Name
-
-
-
- Play count
-
-
-
- Date added
-
-
-
- Ascending
- Sort order
-
-
-
- Descending
- Sort order
-
-
-
- Sailfin
-
-
-
+
Settings
Pulley menu item: navigate to application settings page
+
Remote control
Pulley menu item: shows controllable device page
+
+
+
+ Sort by
+ Menu item for selecting the sort order of a collection
+
+
+
+
+ Empty collection
+
+
+
+
+ Add some items to this collection!
+
+
+
+
+ Name
+
+
+
+
+ Play count
+
+
+
+
+ Date added
+
+
+
+
+ Ascending
+ Sort order
+
+
+
+
+ Descending
+ Sort order
+
+
+
+
+ Sailfin
+
+
ControllableDevicesPage
+
Remote control
Page title: page for remote controlling other Jellyfin apps
+
%1 — %2
List of devices item title in the form of <app name> — <device name>
-
- CoverPage
-
- My Cover
- Mein Cover
-
-
DebugPage
+
Debug information
+
Show debug information
+
Websocket
+
Connection state
+
Unconnected
+
%1 (%2)
+
Device profile
@@ -184,18 +214,22 @@
EpisodePage
+
Episode %1–%2 | %3
+
Episode %1 | %2
+
Overview
+
No overview available
@@ -203,40 +237,30 @@
FilmPage
+
Released: %1 — Run time: %2
+
Overview
-
- FirstPage
-
- Show Page 2
- Zur Seite 2
-
-
- UI Template
- UI-Vorlage
-
-
- Hello Sailors
- Hallo Matrosen
-
-
LegalPage
+
Legal
+
Sailfin contains code taken from other projects. Without them, Sailfin would not be possible!
+
This program contains small snippets of code taken from <a href="%1">%2</a>, which is licensed under the %3 license:
@@ -244,34 +268,41 @@
LoginDialog
+
Logging in as %1
+
Invalid username or password
+
Login
Dialog action
+
Credentials
Section header for entering username and password
+
Username
Label placeholder for username field
+
Password
Label placeholder for password field
+
Login message
Message shown on login, configured by the server owner. Some form of a MOTD
@@ -280,56 +311,67 @@
MainPage
+
Settings
Pulley menu item: navigate to application settings page
+
+ Remote control
+ Pulley menu item: shows controllable device page
+
+
+
+
Reload
Pulley menu item: reload items on page
+
Resume watching
+
Next up
+
Network error
+
Pull down to retry again
-
- Remote control
- Pulley menu item: shows controllable device page
-
-
MusicAlbumPage
+
%1
%2 songs | %3 | %4
Short description of the album: %1 -> album artist, %2 -> amount of songs, %3 -> duration, %4 -> release year
+
Unknown year
Unknown album release year
+
Playlist
%1 songs | %2
+
Disc %1
@@ -337,23 +379,28 @@
MusicArtistPage
+
%1 songs | %2 albums
+
Discography
+
Discography of %1
Page title for the page with an overview of all albums, eps and singles by a specific artist
+
Appears on
+
%1 appears on
Page title for the page with an overview of all albums a specific artist appears on
@@ -362,56 +409,69 @@
MusicLibraryPage
+
+ Settings
+ Pulley menu item: navigate to application settings page
+
+
+
+
+ Remote control
+ Pulley menu item: shows controllable device page
+
+
+
+
Recently added
Header on music library: Recently added music albums
+
Latest media
Page title for the list of all albums within the music library
+
+
Albums
Page title for the list of all albums within the music library
+
+
Playlists
Page title for the list of all playlists within the music library
+
+
Artists
Header for music artists
----------
Page title for the list of all artists within the music library
-
- Settings
- Pulley menu item: navigate to application settings page
-
-
-
- Remote control
- Pulley menu item: shows controllable device page
-
-
PlayQueue
+
Queue
Now playing page queue section header
+
Playlist
Now playing page playlist section header
+
Unknown section: %1
@@ -419,36 +479,43 @@ Page title for the list of all artists within the music library
PlaybackBar
- No audio
-
-
-
- Shuffle not yet implemented
-
-
-
- Stop
- Pulley menu item: stops playback of music
-
-
-
+
Nothing is playing
Shown in a bright font when no media is playing in the bottom bar and now playing screen
+
Connected to %1
Shown when no media is being played, but the app is controlling another Jellyfin client %1 is the name of said client
+
Start playing some media!
+
+
+ No audio
+
+
+
+
+ Shuffle not yet implemented
+
+
+
+
+ Stop
+ Pulley menu item: stops playback of music
+
+
PosterCover
+
%1/%2
@@ -456,6 +523,7 @@ Page title for the list of all artists within the music library
QObject
+
Sailfin
Application display name
@@ -464,6 +532,20 @@ Page title for the list of all artists within the music library
QuickConnectDialog
+
+ Allow login
+ Accept button on dialog for submitting a Quick Connect code
+
+
+
+
+ To log a device in with Quick Connect, select the Quick Connect button and enter the displayed code in the field below.
+ Instructions on page that tells the user a bit about how Quick Connect works
+
+
+
+
+
Quick Connect code
Label for textfield for entering the Quick Connect codeyy
----------
@@ -471,16 +553,7 @@ Placeholder text for textfield for entering the Quick Connect codeyy
- Allow login
- Accept button on dialog for submitting a Quick Connect code
-
-
-
- To log a device in with Quick Connect, select the Quick Connect button and enter the displayed code in the field below.
- Instructions on page that tells the user a bit about how Quick Connect works
-
-
-
+
The Quick Connect code was not accepted
Error message shown below the textfield when it is not connected
@@ -489,25 +562,16 @@ Placeholder text for textfield for entering the Quick Connect codeyy
SeasonPage
+
No overview available
No overview/summary text of an episode available
-
- SecondPage
-
- Nested Page
- Unterseite
-
-
- Item
- Element
-
-
SeriesPage
+
Seasons
Seasons of a (TV) show
@@ -516,70 +580,84 @@ Placeholder text for textfield for entering the Quick Connect codeyy
SettingsPage
+
Settings
Header of Settings page
+
Session
- Log out
-
-
-
- Logging out
-
-
-
- Other
- Other settings menu item
-
-
-
- Streaming settings
- Settings list item for settings related to streaming
-
-
-
- Debug information
- Debug information settings menu itemy
-
-
-
- About Sailfin
- About Sailfin settings menu itemy
-
-
-
+
Quick Connect
This is a name used by Jellyfin and seems to be untranslated in other languages
+
+ Log out
+
+
+
+
+ Logging out
+
+
+
+
+ Other
+ Other settings menu item
+
+
+
+
Start page
Combo box label for selecting where the application should start
+
Which page should be shown when the application starts?
Combo box description for selecting where the application should start
+
All libraries (default)
+
+
+ Streaming settings
+ Settings list item for settings related to streaming
+
+
+
+
+ Debug information
+ Debug information settings menu itemy
+
+
+
+
+ About Sailfin
+ About Sailfin settings menu itemy
+
+
SongDelegate
+
Go to %1
Context menu item for navigating to the artist of the selected track
+
Go to artists
Context menu item for navigating to one of the artists of the selected track (opens submenu)
@@ -588,22 +666,27 @@ Placeholder text for textfield for entering the Quick Connect codeyy
StreamingPage
+
Streaming settings
+
Allow transcoding
+
If enabled, Sailfin may request the Jellyfin server to transcode media to a more suitable media format for this device. It is recommended to leave this enabled unless your server is weak.
+
%1 mbps
+
Maximum streaming bitrate
@@ -611,28 +694,33 @@ Placeholder text for textfield for entering the Quick Connect codeyy
UnsupportedPage
- Item type (%1) unsupported
-
-
-
- Fallback page for %2 not found either
-This is still an alpha version :)
-
-
-
+
Settings
Pulley menu item: navigate to application settings page
+
Remote control
Pulley menu item: shows controllable device page
+
+
+ Item type (%1) unsupported
+
+
+
+
+ Fallback page for %2 not found either
+This is still an alpha version :)
+
+
UserGridDelegate
+
Other account
@@ -640,41 +728,49 @@ This is still an alpha version :)
VideoError
+
No error
Just to be complete if the application shows a video playback error when there's no error.
+
Resource allocation error
Video playback error: out of resources
+
Video format unsupported
Video playback error: unsupported format/codec
+
Network error
Video playback error: network error
+
Access denied
Video playback error: access denied
+
Media service missing
Video playback error: the media cannot be played because the media service could not be instantiated.
+
Retry
Button to retry loading a video after a failure
+
Hide
@@ -682,6 +778,7 @@ This is still an alpha version :)
VideoPage
+
Run time: %2
@@ -689,18 +786,22 @@ This is still an alpha version :)
VideoTrackSelector
+
Video track
+
Audio track
+
Subtitle track
+
Off
Value in ComboBox to disable subtitles
@@ -709,6 +810,7 @@ This is still an alpha version :)
harbour-sailfin
+
Sailfin
The application name for the notification
diff --git a/sailfish/translations/harbour-sailfin-ru.ts b/sailfish/translations/harbour-sailfin-ru.ts
index fecb903..b23996f 100644
--- a/sailfish/translations/harbour-sailfin-ru.ts
+++ b/sailfish/translations/harbour-sailfin-ru.ts
@@ -1,147 +1,173 @@
-
+
AboutPage
+
About Sailfin
- О программе Sailfin
-
-
- Open externally
- Открыть внешним приложением
-
-
-
- Лицензия LGPL 2.1
-
-
- LGPL 2.1 License
+
<p><b>Sailfin version %1</b><br/>Copyright © Chris Josten 2020–%2</p><p>Sailfin is Free Software licensed under the <a href='lgpl'>LGPL-v2.1</a> or later, at your choice. You can <a href="github">view its source code on GitHub</a>. Parts of the code of Sailfin are from other libraries. <a href='3rdparty'>View their licenses here</a>.</p>
+
Contributors
SectionHeader
+
+
+ Open externally
+
+
+
+
+ LGPL 2.1 License
+
+
AddServerConnectingPage
+
Connecting to %1
- Соединяемся с %1
+
AddServerPage
+
Connect
- Соединиться
+
+
Connect to Jellyfin
- Соединиться с Jellyfin
+
+
Server
- Сервер
+
+
Sailfin will try to search for Jellyfin servers on your local network automatically
- Sailfin попробует найти серверы Jellyfin в локальной сети автоматически
+
+
enter address manually
- ввести адрес вручную
+
+
Server address
- Адрес сервера
+
+
e.g. https://demo.jellyfin.org
- Напр. https://demo.jellyfin.org
+
BaseDetailPage
+
Retry
- Попробовать снова
+
+
An error has occured
- Произошла ошибка
+
CollectionPage
+
Loading
- Загрузка
-
-
- Sort by
- Menu item for selecting the sort order of a collection
- Сортировка
-
-
- Empty collection
- Пустая коллекция
-
-
- Add some items to this collection!
- Добавьте что-то в эту коллекцию!
-
-
- Name
- Название
-
-
- Play count
- Количество проигрываний
-
-
- Date added
- Дата добавления
-
-
- Ascending
- Sort order
- По возрастанию
-
-
- Descending
- Sort order
- По убыванию
-
-
- Sailfin
+
Settings
Pulley menu item: navigate to application settings page
- Настройки
+
+
Remote control
Pulley menu item: shows controllable device page
+
+
+
+ Sort by
+ Menu item for selecting the sort order of a collection
+
+
+
+
+ Empty collection
+
+
+
+
+ Add some items to this collection!
+
+
+
+
+ Name
+
+
+
+
+ Play count
+
+
+
+
+ Date added
+
+
+
+
+ Ascending
+ Sort order
+
+
+
+
+ Descending
+ Sort order
+
+
+
+
+ Sailfin
+
+
ControllableDevicesPage
+
Remote control
Page title: page for remote controlling other Jellyfin apps
+
%1 — %2
List of devices item title in the form of <app name> — <device name>
@@ -150,30 +176,37 @@
DebugPage
+
Debug information
- Отладочная информация
+
+
Show debug information
- Показывать отладочную информацию
+
+
Websocket
+
Connection state
+
Unconnected
+
%1 (%2)
+
Device profile
@@ -181,266 +214,308 @@
EpisodePage
+
Episode %1–%2 | %3
- Серия %1–%2 | %3
+
+
Episode %1 | %2
- Серия %1 | %2
+
+
Overview
- Описание
+
+
No overview available
- Нет описания
+
FilmPage
+
Released: %1 — Run time: %2
- Вышел: %1 — Длительность: %2
+
+
Overview
- Описание
+
LegalPage
+
Legal
- This program contains small snippets of code taken from <a href="%1">%2</a>, which is licensed under the %3 license:
+
+ Sailfin contains code taken from other projects. Without them, Sailfin would not be possible!
- Sailfin contains code taken from other projects. Without them, Sailfin would not be possible!
+
+ This program contains small snippets of code taken from <a href="%1">%2</a>, which is licensed under the %3 license:
LoginDialog
+
Logging in as %1
- Входим как %1
+
+
+ Invalid username or password
+
+
+
+
Login
Dialog action
- Войти
+
+
Credentials
Section header for entering username and password
- Учетные данные
+
+
Username
Label placeholder for username field
- Имя пользователя
+
+
Password
Label placeholder for password field
- Пароль
+
+
Login message
Message shown on login, configured by the server owner. Some form of a MOTD
- Сообщение при входе
-
-
- Invalid username or password
- Неверное имя пользователя или пароль
+
MainPage
- Resume watching
- Продолжить просмотр
-
-
- Next up
- Продолжения
-
-
- Network error
- Ошибка сети
-
-
- Pull down to retry again
- Потяните вниз чтобы попробовать снова
-
-
+
Settings
Pulley menu item: navigate to application settings page
- Настройки
-
-
- Reload
- Pulley menu item: reload items on page
- Обновить
+
+
Remote control
Pulley menu item: shows controllable device page
+
+
+ Reload
+ Pulley menu item: reload items on page
+
+
+
+
+ Resume watching
+
+
+
+
+ Next up
+
+
+
+
+ Network error
+
+
+
+
+ Pull down to retry again
+
+
MusicAlbumPage
+
%1
%2 songs | %3 | %4
Short description of the album: %1 -> album artist, %2 -> amount of songs, %3 -> duration, %4 -> release year
- %1
-%2 песен | %3 | %4
+
+
Unknown year
Unknown album release year
- Неизвестный год
+
+
Playlist
%1 songs | %2
- Плейлист
-%1 песни | %2
+
+
Disc %1
- Диск %1
+
MusicArtistPage
+
%1 songs | %2 albums
- %1 песен | %2 альбомов
+
+
Discography
- Дискография
+
+
Discography of %1
Page title for the page with an overview of all albums, eps and singles by a specific artist
- Дискография %1
+
+
Appears on
- Появляется на
+
+
%1 appears on
Page title for the page with an overview of all albums a specific artist appears on
- %1 появляется на
+
MusicLibraryPage
+
+ Settings
+ Pulley menu item: navigate to application settings page
+
+
+
+
+ Remote control
+ Pulley menu item: shows controllable device page
+
+
+
+
Recently added
Header on music library: Recently added music albums
- Добавлены недавно
+
+
Latest media
Page title for the list of all albums within the music library
- Самые новые песни
+
+
+
Albums
Page title for the list of all albums within the music library
- Альбомы
+
+
+
Playlists
Page title for the list of all playlists within the music library
- Плейлисты
+
+
+
Artists
Header for music artists
----------
Page title for the list of all artists within the music library
- Исполнители
-
-
- Settings
- Pulley menu item: navigate to application settings page
- Настройки
-
-
- Remote control
- Pulley menu item: shows controllable device page
PlayQueue
+
Queue
Now playing page queue section header
- Очередь
+
+
Playlist
Now playing page playlist section header
- Плейлист
+
+
Unknown section: %1
- Неизвестная секция: %1
+
PlaybackBar
- No media selected
- Ничего не выбрано
-
-
- Play some media!
- Начните что-то проигрывать!
-
-
- No audio
- Нет звука
-
-
- Shuffle not yet implemented
- Перемешивание ещё не работает
-
-
- Stop
- Pulley menu item: stops playback of music
- Стоп
-
-
+
Nothing is playing
Shown in a bright font when no media is playing in the bottom bar and now playing screen
+
Connected to %1
Shown when no media is being played, but the app is controlling another Jellyfin client %1 is the name of said client
+
Start playing some media!
+
+
+ No audio
+
+
+
+
+ Shuffle not yet implemented
+
+
+
+
+ Stop
+ Pulley menu item: stops playback of music
+
+
PosterCover
+
%1/%2
@@ -448,6 +523,7 @@ Page title for the list of all artists within the music library
QObject
+
Sailfin
Application display name
@@ -456,6 +532,20 @@ Page title for the list of all artists within the music library
QuickConnectDialog
+
+ Allow login
+ Accept button on dialog for submitting a Quick Connect code
+
+
+
+
+ To log a device in with Quick Connect, select the Quick Connect button and enter the displayed code in the field below.
+ Instructions on page that tells the user a bit about how Quick Connect works
+
+
+
+
+
Quick Connect code
Label for textfield for entering the Quick Connect codeyy
----------
@@ -463,16 +553,7 @@ Placeholder text for textfield for entering the Quick Connect codeyy
- Allow login
- Accept button on dialog for submitting a Quick Connect code
-
-
-
- To log a device in with Quick Connect, select the Quick Connect button and enter the displayed code in the field below.
- Instructions on page that tells the user a bit about how Quick Connect works
-
-
-
+
The Quick Connect code was not accepted
Error message shown below the textfield when it is not connected
@@ -481,181 +562,215 @@ Placeholder text for textfield for entering the Quick Connect codeyy
SeasonPage
+
No overview available
No overview/summary text of an episode available
- Нет описания
+
SeriesPage
+
Seasons
Seasons of a (TV) show
- Сезоны
+
SettingsPage
- Other
- Other settings menu item
- Другие
-
-
- About Sailfin
- About Sailfin settings menu itemy
- О программе Sailfin
-
-
- Session
- Сессия
-
-
- Log out
- Выйти
-
-
- Logging out
- Выходим
-
-
- Debug information
- Debug information settings menu itemy
- Отладочная информация
-
-
+
Settings
Header of Settings page
- Настройки
+
- Streaming settings
- Settings list item for settings related to streaming
- Настройки стриминга
+
+ Session
+
+
Quick Connect
This is a name used by Jellyfin and seems to be untranslated in other languages
+
+ Log out
+
+
+
+
+ Logging out
+
+
+
+
+ Other
+ Other settings menu item
+
+
+
+
Start page
Combo box label for selecting where the application should start
+
Which page should be shown when the application starts?
Combo box description for selecting where the application should start
+
All libraries (default)
+
+
+ Streaming settings
+ Settings list item for settings related to streaming
+
+
+
+
+ Debug information
+ Debug information settings menu itemy
+
+
+
+
+ About Sailfin
+ About Sailfin settings menu itemy
+
+
SongDelegate
+
Go to %1
Context menu item for navigating to the artist of the selected track
- Перейти к %1
+
+
Go to artists
Context menu item for navigating to one of the artists of the selected track (opens submenu)
- Перейти к исполнителям
+
StreamingPage
+
Streaming settings
- Настройки стриминга
+
+
Allow transcoding
- Разрешить транскодинг
+
+
If enabled, Sailfin may request the Jellyfin server to transcode media to a more suitable media format for this device. It is recommended to leave this enabled unless your server is weak.
- Если включено, Sailfin может попросить сервер Jellyfin перекодировать медиафайл в более подходящий формат для устройства. Рекомендуется оставить это включенным, если ваш сервер не слишком слабый.
+
+
%1 mbps
- %1 мегабит/сек
+
+
Maximum streaming bitrate
- Максимальный битрейт стриминга
+
UnsupportedPage
- Item type (%1) unsupported
- Тип файла (%1) не поддерживается
-
-
- Fallback page for %2 not found either
-This is still an alpha version :)
+
+ Settings
+ Pulley menu item: navigate to application settings page
- Settings
- Pulley menu item: navigate to application settings page
- Настройки
-
-
+
Remote control
Pulley menu item: shows controllable device page
+
+
+ Item type (%1) unsupported
+
+
+
+
+ Fallback page for %2 not found either
+This is still an alpha version :)
+
+
UserGridDelegate
+
Other account
- Другая учетная запись
+
VideoError
- Resource allocation error
- Video playback error: out of resources
-
-
-
- Video format unsupported
- Video playback error: unsupported format/codec
-
-
-
- Network error
- Video playback error: network error
- Ошибка сети
-
-
- Access denied
- Video playback error: access denied
-
-
-
- Media service missing
- Video playback error: the media cannot be played because the media service could not be instantiated.
-
-
-
- Retry
- Button to retry loading a video after a failure
- Попробовать снова
-
-
+
No error
Just to be complete if the application shows a video playback error when there's no error.
+
+ Resource allocation error
+ Video playback error: out of resources
+
+
+
+
+ Video format unsupported
+ Video playback error: unsupported format/codec
+
+
+
+
+ Network error
+ Video playback error: network error
+
+
+
+
+ Access denied
+ Video playback error: access denied
+
+
+
+
+ Media service missing
+ Video playback error: the media cannot be played because the media service could not be instantiated.
+
+
+
+
+ Retry
+ Button to retry loading a video after a failure
+
+
+
+
Hide
@@ -663,33 +778,39 @@ This is still an alpha version :)
VideoPage
+
Run time: %2
- Длительность: %2
+
VideoTrackSelector
+
+ Video track
+
+
+
+
Audio track
- Аудиодорожка
+
+
Subtitle track
- Дорожка субтитров
+
+
Off
Value in ComboBox to disable subtitles
- Выключено
-
-
- Video track
- Видеодорожка
+
harbour-sailfin
+
Sailfin
The application name for the notification
diff --git a/sailfish/translations/harbour-sailfin.ts b/sailfish/translations/harbour-sailfin.ts
index be39f8f..b23996f 100644
--- a/sailfish/translations/harbour-sailfin.ts
+++ b/sailfish/translations/harbour-sailfin.ts
@@ -4,30 +4,36 @@
AboutPage
+
About Sailfin
- About Sailfin
-
-
- Open externally
-
-
-
- LGPL 2.1 License
+
<p><b>Sailfin version %1</b><br/>Copyright © Chris Josten 2020–%2</p><p>Sailfin is Free Software licensed under the <a href='lgpl'>LGPL-v2.1</a> or later, at your choice. You can <a href="github">view its source code on GitHub</a>. Parts of the code of Sailfin are from other libraries. <a href='3rdparty'>View their licenses here</a>.</p>
+
Contributors
SectionHeader
+
+
+ Open externally
+
+
+
+
+ LGPL 2.1 License
+
+
AddServerConnectingPage
+
Connecting to %1
@@ -35,30 +41,37 @@
AddServerPage
+
Connect
+
Connect to Jellyfin
+
Server
+
Sailfin will try to search for Jellyfin servers on your local network automatically
+
enter address manually
+
Server address
+
e.g. https://demo.jellyfin.org
@@ -66,10 +79,12 @@
BaseDetailPage
+
Retry
+
An error has occured
@@ -77,67 +92,82 @@
CollectionPage
+
Loading
- Sort by
- Menu item for selecting the sort order of a collection
-
-
-
- Empty collection
-
-
-
- Add some items to this collection!
-
-
-
- Name
-
-
-
- Play count
-
-
-
- Date added
-
-
-
- Ascending
- Sort order
-
-
-
- Descending
- Sort order
-
-
-
- Sailfin
-
-
-
+
Settings
Pulley menu item: navigate to application settings page
+
Remote control
Pulley menu item: shows controllable device page
+
+
+
+ Sort by
+ Menu item for selecting the sort order of a collection
+
+
+
+
+ Empty collection
+
+
+
+
+ Add some items to this collection!
+
+
+
+
+ Name
+
+
+
+
+ Play count
+
+
+
+
+ Date added
+
+
+
+
+ Ascending
+ Sort order
+
+
+
+
+ Descending
+ Sort order
+
+
+
+
+ Sailfin
+
+
ControllableDevicesPage
+
Remote control
Page title: page for remote controlling other Jellyfin apps
+
%1 — %2
List of devices item title in the form of <app name> — <device name>
@@ -146,30 +176,37 @@
DebugPage
+
Debug information
+
Show debug information
+
Websocket
+
Connection state
+
Unconnected
+
%1 (%2)
+
Device profile
@@ -177,18 +214,22 @@
EpisodePage
+
Episode %1–%2 | %3
+
Episode %1 | %2
+
Overview
+
No overview available
@@ -196,10 +237,12 @@
FilmPage
+
Released: %1 — Run time: %2
+
Overview
@@ -207,107 +250,128 @@
LegalPage
+
Legal
- This program contains small snippets of code taken from <a href="%1">%2</a>, which is licensed under the %3 license:
+
+ Sailfin contains code taken from other projects. Without them, Sailfin would not be possible!
- Sailfin contains code taken from other projects. Without them, Sailfin would not be possible!
+
+ This program contains small snippets of code taken from <a href="%1">%2</a>, which is licensed under the %3 license:
LoginDialog
+
Logging in as %1
+
+ Invalid username or password
+
+
+
+
Login
Dialog action
+
Credentials
Section header for entering username and password
+
Username
Label placeholder for username field
+
Password
Label placeholder for password field
+
Login message
Message shown on login, configured by the server owner. Some form of a MOTD
-
- Invalid username or password
-
-
MainPage
- Resume watching
-
-
-
- Next up
-
-
-
+
Settings
Pulley menu item: navigate to application settings page
- Network error
+
+ Remote control
+ Pulley menu item: shows controllable device page
+
Reload
Pulley menu item: reload items on page
- Pull down to retry again
+
+ Resume watching
- Remote control
- Pulley menu item: shows controllable device page
+
+ Next up
+
+
+
+
+ Network error
+
+
+
+
+ Pull down to retry again
MusicAlbumPage
+
%1
%2 songs | %3 | %4
Short description of the album: %1 -> album artist, %2 -> amount of songs, %3 -> duration, %4 -> release year
+
Unknown year
Unknown album release year
+
Playlist
%1 songs | %2
+
Disc %1
@@ -315,23 +379,28 @@
MusicArtistPage
+
%1 songs | %2 albums
+
Discography
+
Discography of %1
Page title for the page with an overview of all albums, eps and singles by a specific artist
+
Appears on
+
%1 appears on
Page title for the page with an overview of all albums a specific artist appears on
@@ -340,56 +409,69 @@
MusicLibraryPage
+
+ Settings
+ Pulley menu item: navigate to application settings page
+
+
+
+
+ Remote control
+ Pulley menu item: shows controllable device page
+
+
+
+
Recently added
Header on music library: Recently added music albums
+
Latest media
Page title for the list of all albums within the music library
+
+
Albums
Page title for the list of all albums within the music library
+
+
Playlists
Page title for the list of all playlists within the music library
+
+
Artists
Header for music artists
----------
Page title for the list of all artists within the music library
-
- Settings
- Pulley menu item: navigate to application settings page
-
-
-
- Remote control
- Pulley menu item: shows controllable device page
-
-
PlayQueue
+
Queue
Now playing page queue section header
+
Playlist
Now playing page playlist section header
+
Unknown section: %1
@@ -397,36 +479,43 @@ Page title for the list of all artists within the music library
PlaybackBar
- No audio
-
-
-
- Shuffle not yet implemented
-
-
-
- Stop
- Pulley menu item: stops playback of music
-
-
-
+
Nothing is playing
Shown in a bright font when no media is playing in the bottom bar and now playing screen
+
Connected to %1
Shown when no media is being played, but the app is controlling another Jellyfin client %1 is the name of said client
+
Start playing some media!
+
+
+ No audio
+
+
+
+
+ Shuffle not yet implemented
+
+
+
+
+ Stop
+ Pulley menu item: stops playback of music
+
+
PosterCover
+
%1/%2
@@ -434,6 +523,7 @@ Page title for the list of all artists within the music library
QObject
+
Sailfin
Application display name
@@ -442,6 +532,20 @@ Page title for the list of all artists within the music library
QuickConnectDialog
+
+ Allow login
+ Accept button on dialog for submitting a Quick Connect code
+
+
+
+
+ To log a device in with Quick Connect, select the Quick Connect button and enter the displayed code in the field below.
+ Instructions on page that tells the user a bit about how Quick Connect works
+
+
+
+
+
Quick Connect code
Label for textfield for entering the Quick Connect codeyy
----------
@@ -449,16 +553,7 @@ Placeholder text for textfield for entering the Quick Connect codeyy
- Allow login
- Accept button on dialog for submitting a Quick Connect code
-
-
-
- To log a device in with Quick Connect, select the Quick Connect button and enter the displayed code in the field below.
- Instructions on page that tells the user a bit about how Quick Connect works
-
-
-
+
The Quick Connect code was not accepted
Error message shown below the textfield when it is not connected
@@ -467,6 +562,7 @@ Placeholder text for textfield for entering the Quick Connect codeyy
SeasonPage
+
No overview available
No overview/summary text of an episode available
@@ -475,6 +571,7 @@ Placeholder text for textfield for entering the Quick Connect codeyy
SeriesPage
+
Seasons
Seasons of a (TV) show
@@ -483,70 +580,84 @@ Placeholder text for textfield for entering the Quick Connect codeyy
SettingsPage
+
Settings
Header of Settings page
- Other
- Other settings menu item
-
-
-
- About Sailfin
- About Sailfin settings menu itemy
- About Sailfin
-
-
+
Session
- Log out
-
-
-
- Logging out
-
-
-
- Streaming settings
- Settings list item for settings related to streaming
-
-
-
- Debug information
- Debug information settings menu itemy
-
-
-
+
Quick Connect
This is a name used by Jellyfin and seems to be untranslated in other languages
+
+ Log out
+
+
+
+
+ Logging out
+
+
+
+
+ Other
+ Other settings menu item
+
+
+
+
Start page
Combo box label for selecting where the application should start
+
Which page should be shown when the application starts?
Combo box description for selecting where the application should start
+
All libraries (default)
+
+
+ Streaming settings
+ Settings list item for settings related to streaming
+
+
+
+
+ Debug information
+ Debug information settings menu itemy
+
+
+
+
+ About Sailfin
+ About Sailfin settings menu itemy
+
+
SongDelegate
+
Go to %1
Context menu item for navigating to the artist of the selected track
+
Go to artists
Context menu item for navigating to one of the artists of the selected track (opens submenu)
@@ -555,22 +666,27 @@ Placeholder text for textfield for entering the Quick Connect codeyy
StreamingPage
+
Streaming settings
+
Allow transcoding
+
If enabled, Sailfin may request the Jellyfin server to transcode media to a more suitable media format for this device. It is recommended to leave this enabled unless your server is weak.
+
%1 mbps
+
Maximum streaming bitrate
@@ -578,28 +694,33 @@ Placeholder text for textfield for entering the Quick Connect codeyy
UnsupportedPage
- Item type (%1) unsupported
-
-
-
- Fallback page for %2 not found either
-This is still an alpha version :)
-
-
-
+
Settings
Pulley menu item: navigate to application settings page
+
Remote control
Pulley menu item: shows controllable device page
+
+
+ Item type (%1) unsupported
+
+
+
+
+ Fallback page for %2 not found either
+This is still an alpha version :)
+
+
UserGridDelegate
+
Other account
@@ -607,41 +728,49 @@ This is still an alpha version :)
VideoError
- Resource allocation error
- Video playback error: out of resources
-
-
-
- Video format unsupported
- Video playback error: unsupported format/codec
-
-
-
- Network error
- Video playback error: network error
-
-
-
- Access denied
- Video playback error: access denied
-
-
-
- Media service missing
- Video playback error: the media cannot be played because the media service could not be instantiated.
-
-
-
- Retry
- Button to retry loading a video after a failure
-
-
-
+
No error
Just to be complete if the application shows a video playback error when there's no error.
+
+ Resource allocation error
+ Video playback error: out of resources
+
+
+
+
+ Video format unsupported
+ Video playback error: unsupported format/codec
+
+
+
+
+ Network error
+ Video playback error: network error
+
+
+
+
+ Access denied
+ Video playback error: access denied
+
+
+
+
+ Media service missing
+ Video playback error: the media cannot be played because the media service could not be instantiated.
+
+
+
+
+ Retry
+ Button to retry loading a video after a failure
+
+
+
+
Hide
@@ -649,6 +778,7 @@ This is still an alpha version :)
VideoPage
+
Run time: %2
@@ -656,26 +786,31 @@ This is still an alpha version :)
VideoTrackSelector
+
+ Video track
+
+
+
+
Audio track
+
Subtitle track
+
Off
Value in ComboBox to disable subtitles
-
- Video track
-
-
harbour-sailfin
+
Sailfin
The application name for the notification