From 1e61f5d569a0519240ffbef4d13b6bf846accb5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=ABlle?= <27908024+jannuary@users.noreply.github.com> Date: Tue, 9 Nov 2021 21:56:43 +0700 Subject: [PATCH 01/44] dev: use latest GTK/adwaita (master runtime) (#365) --- Cargo.toml | 6 ++-- dev.alextren.Spot.develoment.json | 41 +----------------------- src/app/components/album/album.ui | 7 ++-- src/app/components/playback/playback.css | 3 +- src/main.rs | 9 ++++-- src/window.ui.in | 2 +- 6 files changed, 16 insertions(+), 52 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 058663ae..39896cae 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,11 +5,11 @@ edition = "2018" license = "MIT" [dependencies.gtk] -version = "^0.2.0" +version = "^0.3.0" package = "gtk4" [dependencies.gdk] -version = "^0.2.0" +version = "^0.3.0" package = "gdk4" [dependencies.gio] @@ -58,7 +58,7 @@ features = ["gettext-system"] [dependencies] secret-service = "^2.0.1" gdk-pixbuf = "^0.14.0" -libadwaita = "0.1.0-alpha-2" +libadwaita = "^0.1.0-alpha-3" ref_filter_map = "^1.0.1" regex = "^1.4.6" async-std = "^1.10.0" diff --git a/dev.alextren.Spot.develoment.json b/dev.alextren.Spot.develoment.json index d70d5a7c..8fa7e565 100644 --- a/dev.alextren.Spot.develoment.json +++ b/dev.alextren.Spot.develoment.json @@ -1,7 +1,7 @@ { "app-id": "dev.alextren.Spot", "runtime": "org.gnome.Platform", - "runtime-version": "40", + "runtime-version": "master", "sdk": "org.gnome.Sdk", "sdk-extensions": [ "org.freedesktop.Sdk.Extension.rust-stable" @@ -37,45 +37,6 @@ "*.a" ], "modules": [ - { - "name": "libadwaita", - "buildsystem": "meson", - "config-opts": [ - "-Dexamples=false", - "-Dtests=false" - ], - "sources": [ - { - "type": "git", - "url": "https://gitlab.gnome.org/GNOME/libadwaita.git", - "branch": "1.0.0-alpha.2" - } - ], - "modules": [ - { - "name": "libsass", - "buildsystem": "meson", - "sources": [ - { - "type": "git", - "url": "https://github.com/lazka/libsass.git", - "branch": "meson" - } - ] - }, - { - "name": "sassc", - "buildsystem": "meson", - "sources": [ - { - "type": "git", - "url": "https://github.com/lazka/sassc.git", - "branch": "meson" - } - ] - } - ] - }, { "name": "spot", "builddir": true, diff --git a/src/app/components/album/album.ui b/src/app/components/album/album.ui index 46e1fdf4..21d961af 100644 --- a/src/app/components/album/album.ui +++ b/src/app/components/album/album.ui @@ -29,10 +29,10 @@ Album center 1 - word-char + word end 1 - 2 + 6 @@ -43,7 +43,8 @@ Artist center 1 - word-char + word + end 1 - \ No newline at end of file + From 183a835e22e116d5da557cb3e86a317d99d43950 Mon Sep 17 00:00:00 2001 From: abegert <91668665+abegert@users.noreply.github.com> Date: Wed, 17 Nov 2021 14:12:38 +0100 Subject: [PATCH 05/44] 232 show album name in playlists and queue (#333) * Pass worker to SongWidget so it can be later used to load song album covers * Show cover art for each song in playlist * Show cover art for songs per default, but not in Albums Albums instead show the songs' index. --- .../artist_details/artist_details.rs | 4 ++- src/app/components/details/details.rs | 2 ++ src/app/components/navigation/factory.rs | 10 ++++-- src/app/components/now_playing/now_playing.rs | 11 ++++-- src/app/components/playlist/playlist.rs | 11 ++++-- src/app/components/playlist/song.rs | 36 ++++++++++++++++--- src/app/components/playlist/song.ui | 8 +++++ .../playlist_details/playlist_details.rs | 2 ++ .../components/saved_tracks/saved_tracks.rs | 11 ++++-- src/app/models/gtypes/song_model.rs | 30 ++++++++++++++-- src/app/models/main.rs | 1 + 11 files changed, 108 insertions(+), 18 deletions(-) diff --git a/src/app/components/artist_details/artist_details.rs b/src/app/components/artist_details/artist_details.rs index d917603c..0c180848 100644 --- a/src/app/components/artist_details/artist_details.rs +++ b/src/app/components/artist_details/artist_details.rs @@ -132,7 +132,7 @@ impl ArtistDetails { if let Some(store) = model.get_list_store() { widget.bind_artist_releases( - worker, + worker.clone(), &*store, clone!(@weak model => move |id| { model.open_album(id); @@ -143,6 +143,8 @@ impl ArtistDetails { let playlist = Box::new(Playlist::new( widget.top_tracks_widget().clone(), Rc::clone(&model), + worker, + true, )); Self { diff --git a/src/app/components/details/details.rs b/src/app/components/details/details.rs index 82b55ec4..84a18b9f 100644 --- a/src/app/components/details/details.rs +++ b/src/app/components/details/details.rs @@ -185,6 +185,8 @@ impl Details { let playlist = Box::new(Playlist::new( widget.album_tracks_widget().clone(), model.clone(), + worker.clone(), + false, )); let modal = ReleaseDetailsWindow::new(); diff --git a/src/app/components/navigation/factory.rs b/src/app/components/navigation/factory.rs index 0fe3cfa5..fb88e1ec 100644 --- a/src/app/components/navigation/factory.rs +++ b/src/app/components/navigation/factory.rs @@ -38,7 +38,10 @@ impl ScreenFactory { Rc::clone(&self.app_model), self.dispatcher.box_clone(), )); - SelectionTools::new(NowPlaying::new(Rc::clone(&model)), model) + SelectionTools::new( + NowPlaying::new(Rc::clone(&model), self.worker.clone()), + model, + ) } pub fn make_saved_tracks(&self) -> impl ListenerComponent { @@ -46,7 +49,10 @@ impl ScreenFactory { Rc::clone(&self.app_model), self.dispatcher.box_clone(), )); - SelectionTools::new(SavedTracks::new(Rc::clone(&model)), model) + SelectionTools::new( + SavedTracks::new(Rc::clone(&model), self.worker.clone()), + model, + ) } pub fn make_album_details(&self, id: String) -> impl ListenerComponent { diff --git a/src/app/components/now_playing/now_playing.rs b/src/app/components/now_playing/now_playing.rs index 89a72844..a6c68bcb 100644 --- a/src/app/components/now_playing/now_playing.rs +++ b/src/app/components/now_playing/now_playing.rs @@ -4,7 +4,7 @@ use gtk::CompositeTemplate; use std::rc::Rc; use crate::app::components::{display_add_css_provider, Component, EventListener, Playlist}; -use crate::app::{state::PlaybackEvent, AppEvent}; +use crate::app::{state::PlaybackEvent, AppEvent, Worker}; use super::NowPlayingModel; @@ -79,14 +79,19 @@ pub struct NowPlaying { } impl NowPlaying { - pub fn new(model: Rc) -> Self { + pub fn new(model: Rc, worker: Worker) -> Self { let widget = NowPlayingWidget::new(); widget.connect_bottom_edge(clone!(@weak model => move || { model.load_more(); })); - let playlist = Playlist::new(widget.song_list_widget().clone(), model.clone()); + let playlist = Playlist::new( + widget.song_list_widget().clone(), + model.clone(), + worker, + true, + ); Self { widget, diff --git a/src/app/components/playlist/playlist.rs b/src/app/components/playlist/playlist.rs index d63be6c7..ca44074d 100644 --- a/src/app/components/playlist/playlist.rs +++ b/src/app/components/playlist/playlist.rs @@ -8,7 +8,7 @@ use crate::app::components::{Component, EventListener, SongWidget}; use crate::app::models::SongModel; use crate::app::{ state::{PlaybackEvent, SelectionEvent, SelectionState}, - AppEvent, ListDiff, ListStore, + AppEvent, ListDiff, ListStore, Worker, }; #[derive(Clone, Copy, Debug)] @@ -64,7 +64,12 @@ impl Playlist where Model: PlaylistModel + 'static, { - pub fn new(listview: gtk::ListView, model: Rc) -> Self { + pub fn new( + listview: gtk::ListView, + model: Rc, + worker: Worker, + show_song_covers: bool, + ) -> Self { let list_model = ListStore::new(); let selection_model = gtk::NoSelection::new(Some(list_model.unsafe_store())); let factory = gtk::SignalListItemFactory::new(); @@ -84,7 +89,7 @@ where song_model.set_state(Self::get_item_state(&*model, &song_model)); let widget = item.child().unwrap().downcast::().unwrap(); - widget.bind(&song_model); + widget.bind(&song_model, worker.clone(), show_song_covers); let id = &song_model.get_id(); widget.set_actions(model.actions_for(id).as_ref()); diff --git a/src/app/components/playlist/song.rs b/src/app/components/playlist/song.rs index 3629af25..b4b45da7 100644 --- a/src/app/components/playlist/song.rs +++ b/src/app/components/playlist/song.rs @@ -1,6 +1,8 @@ use crate::app::components::display_add_css_provider; +use crate::app::loader::ImageLoader; use crate::app::models::SongModel; +use crate::app::Worker; use gio::MenuModel; use gtk::prelude::*; use gtk::subclass::prelude::*; @@ -32,6 +34,9 @@ mod imp { #[template_child] pub menu_btn: TemplateChild, + + #[template_child] + pub song_cover: TemplateChild, } #[glib::object_subclass] @@ -70,9 +75,9 @@ impl SongWidget { glib::Object::new(&[]).expect("Failed to create an instance of SongWidget") } - pub fn for_model(model: SongModel) -> Self { + pub fn for_model(model: SongModel, worker: Worker) -> Self { let _self = Self::new(); - _self.bind(&model); + _self.bind(&model, worker, true); _self } @@ -114,13 +119,36 @@ impl SongWidget { } } - pub fn bind(&self, model: &SongModel) { + fn set_image(&self, pixbuf: Option<&gdk_pixbuf::Pixbuf>) { + imp::SongWidget::from_instance(self) + .song_cover + .set_from_pixbuf(pixbuf); + } + + pub fn bind_art(&self, model: &SongModel, worker: Worker) { + if let Some(url) = model.cover_url() { + let _self = self.downgrade(); + worker.send_local_task(async move { + if let Some(_self) = _self.upgrade() { + let loader = ImageLoader::new(); + let result = loader.load_remote(&url, "jpg", 100, 100).await; + _self.set_image(result.as_ref()); + } + }); + } + } + + pub fn bind(&self, model: &SongModel, worker: Worker, show_cover: bool) { let widget = imp::SongWidget::from_instance(self); - model.bind_index(&*widget.song_index, "label"); model.bind_title(&*widget.song_title, "label"); model.bind_artist(&*widget.song_artist, "label"); model.bind_duration(&*widget.song_length, "label"); + if show_cover { + self.bind_art(model, worker); + } else { + model.bind_index(&*widget.song_index, "label"); + } self.set_playing(model.get_playing()); model.connect_playing_local(clone!(@weak self as _self => move |song| { diff --git a/src/app/components/playlist/song.ui b/src/app/components/playlist/song.ui index 717c030d..72ee808f 100644 --- a/src/app/components/playlist/song.ui +++ b/src/app/components/playlist/song.ui @@ -24,6 +24,14 @@ + + + 30 + + + media-playback-start-symbolic diff --git a/src/app/components/playlist_details/playlist_details.rs b/src/app/components/playlist_details/playlist_details.rs index 6f8b16f6..e61c61a4 100644 --- a/src/app/components/playlist_details/playlist_details.rs +++ b/src/app/components/playlist_details/playlist_details.rs @@ -174,6 +174,8 @@ impl PlaylistDetails { let playlist = Box::new(Playlist::new( widget.playlist_tracks_widget().clone(), model.clone(), + worker.clone(), + true, )); widget.connect_header(); diff --git a/src/app/components/saved_tracks/saved_tracks.rs b/src/app/components/saved_tracks/saved_tracks.rs index c9079a4f..4f25fe67 100644 --- a/src/app/components/saved_tracks/saved_tracks.rs +++ b/src/app/components/saved_tracks/saved_tracks.rs @@ -5,7 +5,7 @@ use std::rc::Rc; use crate::app::components::{display_add_css_provider, Component, EventListener, Playlist}; use crate::app::state::LoginEvent; -use crate::app::AppEvent; +use crate::app::{AppEvent, Worker}; use super::SavedTracksModel; @@ -80,14 +80,19 @@ pub struct SavedTracks { } impl SavedTracks { - pub fn new(model: Rc) -> Self { + pub fn new(model: Rc, worker: Worker) -> Self { let widget = SavedTracksWidget::new(); widget.connect_bottom_edge(clone!(@weak model => move || { model.load_more(); })); - let playlist = Playlist::new(widget.song_list_widget().clone(), model.clone()); + let playlist = Playlist::new( + widget.song_list_widget().clone(), + model.clone(), + worker, + true, + ); Self { widget, diff --git a/src/app/models/gtypes/song_model.rs b/src/app/models/gtypes/song_model.rs index 5d69fe27..3fa29288 100644 --- a/src/app/models/gtypes/song_model.rs +++ b/src/app/models/gtypes/song_model.rs @@ -10,17 +10,33 @@ glib::wrapper! { // Constructor for new instances. This simply calls glib::Object::new() with // initial values for our two properties and then returns the new instance impl SongModel { - pub fn new(id: &str, index: u32, title: &str, artist: &str, duration: &str) -> SongModel { + pub fn new( + id: &str, + index: u32, + title: &str, + artist: &str, + duration: &str, + art: &Option, + ) -> SongModel { glib::Object::new::(&[ ("index", &index), ("title", &title), ("artist", &artist), ("id", &id), ("duration", &duration), + ("art", &art), ]) .expect("Failed to create") } + pub fn cover_url(&self) -> Option { + self.property("art") + .unwrap() + .get::<&str>() + .ok() + .map(|s| s.to_string()) + } + pub fn set_playing(&self, is_playing: bool) { self.set_property("playing", is_playing) .expect("set 'playing' failed"); @@ -128,6 +144,7 @@ mod imp { title: RefCell>, artist: RefCell>, duration: RefCell>, + art: RefCell>, playing: RefCell, selected: RefCell, bindings: RefCell, @@ -176,6 +193,7 @@ mod imp { title: RefCell::new(None), artist: RefCell::new(None), duration: RefCell::new(None), + art: RefCell::new(None), playing: RefCell::new(false), selected: RefCell::new(false), bindings: RefCell::new(Default::default()), @@ -185,7 +203,7 @@ mod imp { // Static array for defining the properties of the new type. lazy_static! { - static ref PROPERTIES: [glib::ParamSpec; 7] = [ + static ref PROPERTIES: [glib::ParamSpec; 8] = [ glib::ParamSpec::new_uint( "index", "Index", @@ -219,6 +237,7 @@ mod imp { false, glib::ParamFlags::READWRITE, ), + glib::ParamSpec::new_string("art", "Art", "", None, glib::ParamFlags::READWRITE,), ]; } @@ -268,6 +287,12 @@ mod imp { .expect("type conformity checked by `Object::set_property`"); self.duration.replace(dur); } + "art" => { + let art = value + .get() + .expect("type conformity checked by `Object::set_property`"); + self.art.replace(art); + } "playing" => { let playing = value .get() @@ -293,6 +318,7 @@ mod imp { "artist" => self.artist.borrow().to_value(), "id" => self.id.borrow().to_value(), "duration" => self.duration.borrow().to_value(), + "art" => self.art.borrow().to_value(), "playing" => self.playing.borrow().to_value(), "selected" => self.selected.borrow().to_value(), _ => unimplemented!(), diff --git a/src/app/models/main.rs b/src/app/models/main.rs index b183bc2d..ce39d377 100644 --- a/src/app/models/main.rs +++ b/src/app/models/main.rs @@ -42,6 +42,7 @@ impl From<&SongDescription> for SongModel { &song.title, &song.artists_name(), &format_duration(song.duration.into()), + &song.art, ) } } From a83be67224163820ee42c1976b1075756471a401 Mon Sep 17 00:00:00 2001 From: Kukuh Syafaat Date: Wed, 17 Nov 2021 20:28:03 +0700 Subject: [PATCH 06/44] Update Indonesian translation (#367) --- po/id.po | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/po/id.po b/po/id.po index d746e045..6f1e61a2 100644 --- a/po/id.po +++ b/po/id.po @@ -3,10 +3,14 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: POEditor.com\n" +"X-Generator: Poedit 3.0\n" "Project-Id-Version: Spot\n" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: Kukuh Syafaat \n" +"Language-Team: \n" #. translators: This is part of a larger label that reads " by " #: src/app/components/details/release_details.rs:101 @@ -183,29 +187,23 @@ msgstr "Artis" #: src/app/components/navigation/home.rs:47 msgid "Saved tracks" -msgstr "" +msgstr "Trek yang disimpan" -#: msgctxt "A title that is shown when the user has not saved any albums." msgid "You have no saved albums." -msgstr "" +msgstr "Anda tidak memiliki album yang disimpan." -#: msgctxt "A description of what happens when the user has saved albums." msgid "Your library will be shown here." -msgstr "" +msgstr "Pustaka Anda akan ditampilkan di sini." -#: msgctxt "A title that is shown when the user has not saved any playlists." msgid "You have no saved playlists." -msgstr "" +msgstr "Anda tidak memiliki daftar putar yang disimpan." -#: msgctxt "A description of what happens when the user has saved playlists." msgid "Your playlists will be shown here." -msgstr "" +msgstr "Daftar putar Anda akan ditampilkan di sini." -#: msgid "Caps Lock is enabled!" -msgstr "" - +msgstr "Caps Lock diaktifkan!" From 1d7b3ee76ac58d1881636f6797aacf3861c01a1c Mon Sep 17 00:00:00 2001 From: Alexandre Trendel Date: Wed, 17 Nov 2021 08:13:41 -0500 Subject: [PATCH 07/44] update authors --- AUTHORS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index c394002a..2d6f4c5b 100644 --- a/AUTHORS +++ b/AUTHORS @@ -13,4 +13,5 @@ Diego Augusto sei0o inoue Jan Przebor Noëlle -xRMG412 \ No newline at end of file +xRMG412 +abegert \ No newline at end of file From c5a230b21cbd017d3e1f9ee81c360dc3baf5d2bd Mon Sep 17 00:00:00 2001 From: Alexandre Trendel Date: Wed, 17 Nov 2021 08:25:47 -0500 Subject: [PATCH 08/44] update translations --- po/POTFILES | 24 ++++----- po/ca.po | 142 ++++++++++++++++++++++++++++++++-------------------- po/cs.po | 119 ++++++++++++++++++++++++++----------------- po/de.po | 110 +++++++++++++++++++++++++--------------- po/en.po | 105 ++++++++++++++++++++++++-------------- po/es.po | 116 ++++++++++++++++++++++++++---------------- po/eu.po | 109 +++++++++++++++++++++++++--------------- po/fi.po | 120 ++++++++++++++++++++++++++++---------------- po/fr.po | 122 ++++++++++++++++++++++++++++---------------- po/ia.po | 124 ++++++++++++++++++++++++++++----------------- po/id.po | 113 ++++++++++++++++++++++++++--------------- po/nb.po | 120 ++++++++++++++++++++++++++++---------------- po/nl.po | 120 ++++++++++++++++++++++++++++---------------- po/pl.po | 124 ++++++++++++++++++++++++++++----------------- po/pt-br.po | 109 +++++++++++++++++++++++++--------------- po/pt.po | 116 ++++++++++++++++++++++++++---------------- po/ru.po | 111 +++++++++++++++++++++++++--------------- po/spot.pot | 58 ++++++++++----------- po/tr.po | 109 +++++++++++++++++++++++++--------------- 19 files changed, 1310 insertions(+), 761 deletions(-) diff --git a/po/POTFILES b/po/POTFILES index 00577a99..937ec9d7 100644 --- a/po/POTFILES +++ b/po/POTFILES @@ -15,20 +15,20 @@ src/main.rs # find src -name "*.ui*" -print src/window.ui.in -src/app/components/details/release_details.ui -src/app/components/details/details.ui +src/app/components/saved_playlists/saved_playlists.ui +src/app/components/artist_details/artist_details.ui +src/app/components/saved_tracks/saved_tracks.ui +src/app/components/search/search.ui src/app/components/artist/artist.ui -src/app/components/playback/playback_controls.ui -src/app/components/playback/playback_widget.ui -src/app/components/playback/playback_info.ui src/app/components/user_details/user_details.ui +src/app/components/details/release_details.ui +src/app/components/details/details.ui +src/app/components/now_playing/now_playing.ui +src/app/components/login/login.ui src/app/components/playlist_details/playlist_details.ui src/app/components/album/album.ui -src/app/components/artist_details/artist_details.ui -src/app/components/login/login.ui -src/app/components/saved_playlists/saved_playlists.ui -src/app/components/library/library.ui -src/app/components/now_playing/now_playing.ui src/app/components/playlist/song.ui -src/app/components/saved_tracks/saved_tracks.ui -src/app/components/search/search.ui +src/app/components/playback/playback_widget.ui +src/app/components/playback/playback_info.ui +src/app/components/playback/playback_controls.ui +src/app/components/library/library.ui \ No newline at end of file diff --git a/po/ca.po b/po/ca.po index 66dc80ee..aacb77d9 100644 --- a/po/ca.po +++ b/po/ca.po @@ -1,44 +1,52 @@ msgid "" msgstr "" +"Project-Id-Version: Spot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-17 08:20-0500\n" +"Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: POEditor.com\n" -"Project-Id-Version: Spot\n" -"Language: ca\n" +"X-Generator: Poedit 3.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" + +#. translators: This notification is the default message for unhandled errors. Logs refer to console output. +#: src/app/batch_loader.rs:91 src/app/components/mod.rs:108 +msgid "An error occured. Check logs for details!" +msgstr "Ha ocorregut un error. Comprova els registres per més detalls!" #. translators: This is part of a larger label that reads " by " #: src/app/components/details/release_details.rs:101 msgid "by" -msgstr "" +msgstr "per" #. translators: This refers to a music label #: src/app/components/details/release_details.rs:108 msgid "Label:" -msgstr "" +msgstr "Etiqueta:" #. translators: This refers to a release date #: src/app/components/details/release_details.rs:115 -#, fuzzy msgid "Released:" -msgstr "Llançaments" +msgstr "Llançaments:" #. translators: This refers to a number of tracks #: src/app/components/details/release_details.rs:122 -#, fuzzy msgid "Tracks:" -msgstr "Millors pistes" +msgstr "Pistes:" #. translators: This refers to the duration of eg. an album #: src/app/components/details/release_details.rs:129 msgid "Duration:" -msgstr "" +msgstr "Duració:" #. translators: Self explanatory #: src/app/components/details/release_details.rs:136 msgid "Copyright:" -msgstr "" +msgstr "Copyright:" #. translators: This is part of a contextual menu attached to a single track; this entry allows viewing the album containing a specific track. #: src/app/components/labels.rs:5 @@ -68,17 +76,14 @@ msgstr "Suprimeix de la cua" #. translators: This is part of a larger text that says "Add to ". This text should be as short as possible. #: src/app/components/labels.rs:24 msgid "Add to {}" -msgstr "" +msgstr "Afegeix a {}" #. translators: This notification shows up right after login if the password could not be stored in the keyring (that is, GNOME's keyring aka seahorse, or any other libsecret compliant secret store). -#: src/app/components/login/login_model.rs:52 +#: src/app/components/login/login_model.rs:56 msgid "Could not save password. Make sure the session keyring is unlocked." -msgstr "No s'ha pogut desar la sessió. Assegura't que l'anell de claus de la sessió està desbloquejat." - -#. translators: This notification is the default message for unhandled errors. Logs refer to console output. -#: src/app/components/mod.rs:108 -msgid "An error occured. Check logs for details!" -msgstr "Ha ocorregut un error. Comprova els registres per més detalls!" +msgstr "" +"No s'ha pogut desar la contrasenya. Assegura't que l'anell de claus de la " +"sessió està desbloquejat." #. translators: This is a sidebar entry to browse to saved albums. #: src/app/components/navigation/home.rs:36 @@ -90,12 +95,27 @@ msgstr "Biblioteca" msgid "Playlists" msgstr "Llistes de reproducció" +#. translators: This is a sidebar entry to browse to saved tracks. +#. This is the visible name for the list of liked songs. It appears in the sidebar as well. +#: src/app/components/navigation/home.rs:48 +#: src/app/components/saved_tracks/saved_tracks.ui:14 +msgid "Saved tracks" +msgstr "Pistes desades" + #. This is the visible name for the play queue. It appears in the sidebar as well. -#: src/app/components/navigation/home.rs:52 +#: src/app/components/navigation/home.rs:53 #: src/app/components/now_playing/now_playing.ui:14 msgid "Now playing" msgstr "S'està reproduïnt" +#: src/app/components/playback/playback_controls.rs:64 +msgid "Pause" +msgstr "Pausa" + +#: src/app/components/playback/playback_controls.rs:66 +msgid "Play" +msgstr "Reprodueix" + #. translators: Short text displayed instead of a song title when nothing plays #. Short text displayed instead of a song title when nothing plays #: src/app/components/playback/playback_info.rs:58 @@ -123,7 +143,7 @@ msgstr[1] "cançons seleccionades" #. translators: This is a menu entry. #: src/app/components/user_menu/user_menu.rs:56 msgid "About" -msgstr "Quant a" +msgstr "Quant al Spot" #. translators: This is a menu entry. #: src/app/components/user_menu/user_menu.rs:58 @@ -139,6 +159,16 @@ msgstr "Tanca la sessió" msgid "Connection restored" msgstr "Connexió restablerta" +#. A title that is shown when the user has not saved any playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:26 +msgid "You have no saved playlists." +msgstr "No teniu llistes de reproducció desades." + +#. A description of what happens when the user has saved playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:27 +msgid "Your playlists will be shown here." +msgstr "Les vostres llistes de reproducció es mostraran aquí." + #. Title of the section that shows 5 of the top tracks for an artist, as defined by Spotify. #: src/app/components/artist_details/artist_details.ui:40 msgid "Top tracks" @@ -149,6 +179,16 @@ msgstr "Millors pistes" msgid "Releases" msgstr "Llançaments" +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:66 +msgid "Albums" +msgstr "Àlbums" + +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:99 +msgid "Artists" +msgstr "Artistes" + #. Login window title -- shouldn't be too long, but must mention Premium (a premium account is required). #: src/app/components/login/login.ui:45 msgid "Login to Spotify Premium" @@ -164,51 +204,43 @@ msgstr "Nom d'usuari" msgid "Password" msgstr "Contrasenya" -#. This error is shown when authentication fails. +#. This information is shown when Caps Lock is enabled. #: src/app/components/login/login.ui:95 +msgid "Caps Lock is enabled!" +msgstr "Bloq Maj està habilitat!" + +#. This error is shown when authentication fails. +#: src/app/components/login/login.ui:126 msgid "Authentication failed!" msgstr "L'autenticació ha fallat!" #. Log in button label -#: src/app/components/login/login.ui:110 +#: src/app/components/login/login.ui:141 msgid "Log in" msgstr "Inicia sessió" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:66 -msgid "Albums" -msgstr "Àlbums" +#: src/app/components/playback/playback_controls.ui:17 +msgid "Shuffle" +msgstr "Barreja" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:99 -msgid "Artists" -msgstr "Artistes" +#: src/app/components/playback/playback_controls.ui:27 +msgid "Previous" +msgstr "Anterior" -#: src/app/components/navigation/home.rs:47 -msgid "Saved tracks" -msgstr "" +#: src/app/components/playback/playback_controls.ui:50 +msgid "Next" +msgstr "Següent" + +#: src/app/components/playback/playback_controls.ui:60 +msgid "Repeat" +msgstr "Repeteix" -#: -msgctxt "A title that is shown when the user has not saved any albums." +#. A title that is shown when the user has not saved any albums. +#: src/app/components/library/library.ui:26 msgid "You have no saved albums." -msgstr "" +msgstr "No teniu àlbums desats." -#: -msgctxt "A description of what happens when the user has saved albums." +#. A description of what happens when the user has saved albums. +#: src/app/components/library/library.ui:27 msgid "Your library will be shown here." -msgstr "" - -#: -msgctxt "A title that is shown when the user has not saved any playlists." -msgid "You have no saved playlists." -msgstr "" - -#: -msgctxt "A description of what happens when the user has saved playlists." -msgid "Your playlists will be shown here." -msgstr "" - -#: -msgid "Caps Lock is enabled!" -msgstr "" - +msgstr "Aquí es mostrarà la vostra biblioteca." diff --git a/po/cs.po b/po/cs.po index f821b475..5bfa245a 100644 --- a/po/cs.po +++ b/po/cs.po @@ -1,12 +1,22 @@ msgid "" msgstr "" +"Project-Id-Version: Spot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-17 08:20-0500\n" +"Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: POEditor.com\n" -"Project-Id-Version: Spot\n" -"Language: cs\n" +"X-Generator: Poedit 3.0\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" + +#. translators: This notification is the default message for unhandled errors. Logs refer to console output. +#: src/app/batch_loader.rs:91 src/app/components/mod.rs:108 +msgid "An error occured. Check logs for details!" +msgstr "Došlo k chybě. Podrobnosti najdete v protokolu." #. translators: This is part of a larger label that reads " by " #: src/app/components/details/release_details.rs:101 @@ -69,15 +79,10 @@ msgid "Add to {}" msgstr "Přidat do {}" #. translators: This notification shows up right after login if the password could not be stored in the keyring (that is, GNOME's keyring aka seahorse, or any other libsecret compliant secret store). -#: src/app/components/login/login_model.rs:52 +#: src/app/components/login/login_model.rs:56 msgid "Could not save password. Make sure the session keyring is unlocked." msgstr "Heslo nelze uložit. Zkontrolujte, že je klíčenka (session keyring) odemčená." -#. translators: This notification is the default message for unhandled errors. Logs refer to console output. -#: src/app/components/mod.rs:108 -msgid "An error occured. Check logs for details!" -msgstr "Došlo k chybě. Podrobnosti najdete v protokolu." - #. translators: This is a sidebar entry to browse to saved albums. #: src/app/components/navigation/home.rs:36 msgid "Library" @@ -88,12 +93,27 @@ msgstr "Knihovna" msgid "Playlists" msgstr "Playlisty" +#. translators: This is a sidebar entry to browse to saved tracks. +#. This is the visible name for the list of liked songs. It appears in the sidebar as well. +#: src/app/components/navigation/home.rs:48 +#: src/app/components/saved_tracks/saved_tracks.ui:14 +msgid "Saved tracks" +msgstr "Uložené skladby" + #. This is the visible name for the play queue. It appears in the sidebar as well. -#: src/app/components/navigation/home.rs:52 +#: src/app/components/navigation/home.rs:53 #: src/app/components/now_playing/now_playing.ui:14 msgid "Now playing" msgstr "Právě hraje" +#: src/app/components/playback/playback_controls.rs:64 +msgid "Pause" +msgstr "Pozastavit" + +#: src/app/components/playback/playback_controls.rs:66 +msgid "Play" +msgstr "Přehrát" + #. translators: Short text displayed instead of a song title when nothing plays #. Short text displayed instead of a song title when nothing plays #: src/app/components/playback/playback_info.rs:58 @@ -138,6 +158,16 @@ msgstr "Odhlásit se" msgid "Connection restored" msgstr "Připojení obnoveno" +#. A title that is shown when the user has not saved any playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:26 +msgid "You have no saved playlists." +msgstr "Nemáte žádné uložené playlisty." + +#. A description of what happens when the user has saved playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:27 +msgid "Your playlists will be shown here." +msgstr "Tady budou zobrazeny vaše playlisty." + #. Title of the section that shows 5 of the top tracks for an artist, as defined by Spotify. #: src/app/components/artist_details/artist_details.ui:40 msgid "Top tracks" @@ -148,6 +178,16 @@ msgstr "Populární" msgid "Releases" msgstr "Diskografie" +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:66 +msgid "Albums" +msgstr "Alba" + +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:99 +msgid "Artists" +msgstr "Umělci" + #. Login window title -- shouldn't be too long, but must mention Premium (a premium account is required). #: src/app/components/login/login.ui:45 msgid "Login to Spotify Premium" @@ -163,54 +203,43 @@ msgstr "Uživatelské jméno" msgid "Password" msgstr "Heslo" -#. This error is shown when authentication fails. +#. This information is shown when Caps Lock is enabled. #: src/app/components/login/login.ui:95 +msgid "Caps Lock is enabled!" +msgstr "Máte zapnutý Caps Lock!" + +#. This error is shown when authentication fails. +#: src/app/components/login/login.ui:126 msgid "Authentication failed!" msgstr "Chyba autentizace!" #. Log in button label -#: src/app/components/login/login.ui:110 +#: src/app/components/login/login.ui:141 msgid "Log in" msgstr "Přihlásit se" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:66 -msgid "Albums" -msgstr "Alba" +#: src/app/components/playback/playback_controls.ui:17 +msgid "Shuffle" +msgstr "Náhodné přehrávání" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:99 -msgid "Artists" -msgstr "Umělci" +#: src/app/components/playback/playback_controls.ui:27 +msgid "Previous" +msgstr "Předchozí" -#. Where is this text displayed? -#. I see it is supposed to be in `src/app/components/navigation/home.rs:47`, but that does not seem to be the case: https://github.com/xou816/spot/blob/1b96cd07129f27c7f3f3a2e66299c44a52e489d4/src/app/components/navigation/home.rs -#. Maybe it is something that has not been commited yet (2021-10-02T10:42:52+02:00), but @xou816 has it locally and has generated pot / po files from it in https://github.com/xou816/spot/commit/86414c03d207cdf4e2c1cbddd47c7ca5629d1303 -#: src/app/components/navigation/home.rs:47 -msgid "Saved tracks" -msgstr "Uložené skladby" +#: src/app/components/playback/playback_controls.ui:50 +msgid "Next" +msgstr "Následující" + +#: src/app/components/playback/playback_controls.ui:60 +msgid "Repeat" +msgstr "Opakovat" -#: -msgctxt "A title that is shown when the user has not saved any albums." +#. A title that is shown when the user has not saved any albums. +#: src/app/components/library/library.ui:26 msgid "You have no saved albums." msgstr "Nemáte žádná uložená alba." -#: -msgctxt "A description of what happens when the user has saved albums." +#. A description of what happens when the user has saved albums. +#: src/app/components/library/library.ui:27 msgid "Your library will be shown here." msgstr "Tady bude zobrazena vaše knihovna." - -#: -msgctxt "A title that is shown when the user has not saved any playlists." -msgid "You have no saved playlists." -msgstr "Nemáte žádné uložené playlisty." - -#: -msgctxt "A description of what happens when the user has saved playlists." -msgid "Your playlists will be shown here." -msgstr "Tady budou zobrazeny vaše playlisty." - -#: -msgid "Caps Lock is enabled!" -msgstr "" - diff --git a/po/de.po b/po/de.po index 8ece4d41..f0cf7adc 100644 --- a/po/de.po +++ b/po/de.po @@ -1,13 +1,21 @@ msgid "" msgstr "" +"Project-Id-Version: Spot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-17 08:20-0500\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" -"Project-Id-Version: Spot\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#. translators: This notification is the default message for unhandled errors. Logs refer to console output. +#: src/app/batch_loader.rs:91 src/app/components/mod.rs:108 +msgid "An error occured. Check logs for details!" +msgstr "" +"Es ist ein Fehler aufgetreten. Überprüfen Sie die Protokolle für Details!" + #. translators: This is part of a larger label that reads " by " #: src/app/components/details/release_details.rs:101 msgid "by" @@ -69,14 +77,11 @@ msgid "Add to {}" msgstr "Zu {} hinzufügen" #. translators: This notification shows up right after login if the password could not be stored in the keyring (that is, GNOME's keyring aka seahorse, or any other libsecret compliant secret store). -#: src/app/components/login/login_model.rs:52 +#: src/app/components/login/login_model.rs:56 msgid "Could not save password. Make sure the session keyring is unlocked." -msgstr "Das Passwort konnte nicht gespeichert werden. Stellen Sie sicher, dass der Sitzungs-Schlüsselbund entsperrt ist." - -#. translators: This notification is the default message for unhandled errors. Logs refer to console output. -#: src/app/components/mod.rs:108 -msgid "An error occured. Check logs for details!" -msgstr "Es ist ein Fehler aufgetreten. Überprüfen Sie die Protokolle für Details!" +msgstr "" +"Das Passwort konnte nicht gespeichert werden. Stellen Sie sicher, dass der " +"Sitzungs-Schlüsselbund entsperrt ist." #. translators: This is a sidebar entry to browse to saved albums. #: src/app/components/navigation/home.rs:36 @@ -88,12 +93,27 @@ msgstr "Bibliothek" msgid "Playlists" msgstr "Playlists" +#. translators: This is a sidebar entry to browse to saved tracks. +#. This is the visible name for the list of liked songs. It appears in the sidebar as well. +#: src/app/components/navigation/home.rs:48 +#: src/app/components/saved_tracks/saved_tracks.ui:14 +msgid "Saved tracks" +msgstr "" + #. This is the visible name for the play queue. It appears in the sidebar as well. -#: src/app/components/navigation/home.rs:52 +#: src/app/components/navigation/home.rs:53 #: src/app/components/now_playing/now_playing.ui:14 msgid "Now playing" msgstr "Es läuft" +#: src/app/components/playback/playback_controls.rs:64 +msgid "Pause" +msgstr "" + +#: src/app/components/playback/playback_controls.rs:66 +msgid "Play" +msgstr "" + #. translators: Short text displayed instead of a song title when nothing plays #. Short text displayed instead of a song title when nothing plays #: src/app/components/playback/playback_info.rs:58 @@ -137,6 +157,16 @@ msgstr "Abmelden" msgid "Connection restored" msgstr "Verbindung wiederhergestellt" +#. A title that is shown when the user has not saved any playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:26 +msgid "You have no saved playlists." +msgstr "" + +#. A description of what happens when the user has saved playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:27 +msgid "Your playlists will be shown here." +msgstr "" + #. Title of the section that shows 5 of the top tracks for an artist, as defined by Spotify. #: src/app/components/artist_details/artist_details.ui:40 msgid "Top tracks" @@ -147,6 +177,16 @@ msgstr "Beliebte Titel" msgid "Releases" msgstr "Diskografie" +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:66 +msgid "Albums" +msgstr "Alben" + +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:99 +msgid "Artists" +msgstr "Künstler" + #. Login window title -- shouldn't be too long, but must mention Premium (a premium account is required). #: src/app/components/login/login.ui:45 msgid "Login to Spotify Premium" @@ -162,51 +202,43 @@ msgstr "Benutzername" msgid "Password" msgstr "Passwort" -#. This error is shown when authentication fails. +#. This information is shown when Caps Lock is enabled. #: src/app/components/login/login.ui:95 +msgid "Caps Lock is enabled!" +msgstr "" + +#. This error is shown when authentication fails. +#: src/app/components/login/login.ui:126 msgid "Authentication failed!" msgstr "Anmeldung fehlgeschlagen!" #. Log in button label -#: src/app/components/login/login.ui:110 +#: src/app/components/login/login.ui:141 msgid "Log in" msgstr "Anmelden" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:66 -msgid "Albums" -msgstr "Alben" - -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:99 -msgid "Artists" -msgstr "Künstler" - -#: src/app/components/navigation/home.rs:47 -msgid "Saved tracks" +#: src/app/components/playback/playback_controls.ui:17 +msgid "Shuffle" msgstr "" -#: -msgctxt "A title that is shown when the user has not saved any albums." -msgid "You have no saved albums." +#: src/app/components/playback/playback_controls.ui:27 +msgid "Previous" msgstr "" -#: -msgctxt "A description of what happens when the user has saved albums." -msgid "Your library will be shown here." +#: src/app/components/playback/playback_controls.ui:50 +msgid "Next" msgstr "" -#: -msgctxt "A title that is shown when the user has not saved any playlists." -msgid "You have no saved playlists." +#: src/app/components/playback/playback_controls.ui:60 +msgid "Repeat" msgstr "" -#: -msgctxt "A description of what happens when the user has saved playlists." -msgid "Your playlists will be shown here." +#. A title that is shown when the user has not saved any albums. +#: src/app/components/library/library.ui:26 +msgid "You have no saved albums." msgstr "" -#: -msgid "Caps Lock is enabled!" +#. A description of what happens when the user has saved albums. +#: src/app/components/library/library.ui:27 +msgid "Your library will be shown here." msgstr "" - diff --git a/po/en.po b/po/en.po index 5e11261f..26c05b88 100644 --- a/po/en.po +++ b/po/en.po @@ -1,13 +1,20 @@ msgid "" msgstr "" +"Project-Id-Version: Spot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-17 08:20-0500\n" +"Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" -"Project-Id-Version: Spot\n" -"Language: en\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#. translators: This notification is the default message for unhandled errors. Logs refer to console output. +#: src/app/batch_loader.rs:91 src/app/components/mod.rs:108 +msgid "An error occured. Check logs for details!" +msgstr "An error occured. Check logs for details!" + #. translators: This is part of a larger label that reads " by " #: src/app/components/details/release_details.rs:101 msgid "by" @@ -69,15 +76,10 @@ msgid "Add to {}" msgstr "Add to {}" #. translators: This notification shows up right after login if the password could not be stored in the keyring (that is, GNOME's keyring aka seahorse, or any other libsecret compliant secret store). -#: src/app/components/login/login_model.rs:52 +#: src/app/components/login/login_model.rs:56 msgid "Could not save password. Make sure the session keyring is unlocked." msgstr "Could not save password. Make sure the session keyring is unlocked." -#. translators: This notification is the default message for unhandled errors. Logs refer to console output. -#: src/app/components/mod.rs:108 -msgid "An error occured. Check logs for details!" -msgstr "An error occured. Check logs for details!" - #. translators: This is a sidebar entry to browse to saved albums. #: src/app/components/navigation/home.rs:36 msgid "Library" @@ -88,12 +90,27 @@ msgstr "Library" msgid "Playlists" msgstr "Playlists" +#. translators: This is a sidebar entry to browse to saved tracks. +#. This is the visible name for the list of liked songs. It appears in the sidebar as well. +#: src/app/components/navigation/home.rs:48 +#: src/app/components/saved_tracks/saved_tracks.ui:14 +msgid "Saved tracks" +msgstr "" + #. This is the visible name for the play queue. It appears in the sidebar as well. -#: src/app/components/navigation/home.rs:52 +#: src/app/components/navigation/home.rs:53 #: src/app/components/now_playing/now_playing.ui:14 msgid "Now playing" msgstr "Now playing" +#: src/app/components/playback/playback_controls.rs:64 +msgid "Pause" +msgstr "" + +#: src/app/components/playback/playback_controls.rs:66 +msgid "Play" +msgstr "" + #. translators: Short text displayed instead of a song title when nothing plays #. Short text displayed instead of a song title when nothing plays #: src/app/components/playback/playback_info.rs:58 @@ -137,6 +154,16 @@ msgstr "Log out" msgid "Connection restored" msgstr "Connection restored" +#. A title that is shown when the user has not saved any playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:26 +msgid "You have no saved playlists." +msgstr "" + +#. A description of what happens when the user has saved playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:27 +msgid "Your playlists will be shown here." +msgstr "" + #. Title of the section that shows 5 of the top tracks for an artist, as defined by Spotify. #: src/app/components/artist_details/artist_details.ui:40 msgid "Top tracks" @@ -147,6 +174,16 @@ msgstr "Top tracks" msgid "Releases" msgstr "Releases" +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:66 +msgid "Albums" +msgstr "Albums" + +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:99 +msgid "Artists" +msgstr "Artists" + #. Login window title -- shouldn't be too long, but must mention Premium (a premium account is required). #: src/app/components/login/login.ui:45 msgid "Login to Spotify Premium" @@ -162,51 +199,43 @@ msgstr "Username" msgid "Password" msgstr "Password" -#. This error is shown when authentication fails. +#. This information is shown when Caps Lock is enabled. #: src/app/components/login/login.ui:95 +msgid "Caps Lock is enabled!" +msgstr "" + +#. This error is shown when authentication fails. +#: src/app/components/login/login.ui:126 msgid "Authentication failed!" msgstr "Authentication failed!" #. Log in button label -#: src/app/components/login/login.ui:110 +#: src/app/components/login/login.ui:141 msgid "Log in" msgstr "Log in" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:66 -msgid "Albums" -msgstr "Albums" - -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:99 -msgid "Artists" -msgstr "Artists" - -#: src/app/components/navigation/home.rs:47 -msgid "Saved tracks" +#: src/app/components/playback/playback_controls.ui:17 +msgid "Shuffle" msgstr "" -#: -msgctxt "A title that is shown when the user has not saved any albums." -msgid "You have no saved albums." +#: src/app/components/playback/playback_controls.ui:27 +msgid "Previous" msgstr "" -#: -msgctxt "A description of what happens when the user has saved albums." -msgid "Your library will be shown here." +#: src/app/components/playback/playback_controls.ui:50 +msgid "Next" msgstr "" -#: -msgctxt "A title that is shown when the user has not saved any playlists." -msgid "You have no saved playlists." +#: src/app/components/playback/playback_controls.ui:60 +msgid "Repeat" msgstr "" -#: -msgctxt "A description of what happens when the user has saved playlists." -msgid "Your playlists will be shown here." +#. A title that is shown when the user has not saved any albums. +#: src/app/components/library/library.ui:26 +msgid "You have no saved albums." msgstr "" -#: -msgid "Caps Lock is enabled!" +#. A description of what happens when the user has saved albums. +#: src/app/components/library/library.ui:27 +msgid "Your library will be shown here." msgstr "" - diff --git a/po/es.po b/po/es.po index 0de9d724..f1cc6153 100644 --- a/po/es.po +++ b/po/es.po @@ -1,12 +1,22 @@ msgid "" msgstr "" +"Project-Id-Version: Spot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-17 08:20-0500\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: POEditor.com\n" -"Project-Id-Version: Spot\n" -"Language: es\n" +"X-Generator: Poedit 3.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" + +#. translators: This notification is the default message for unhandled errors. Logs refer to console output. +#: src/app/batch_loader.rs:91 src/app/components/mod.rs:108 +msgid "An error occured. Check logs for details!" +msgstr "Ha ocurrido un error. ¡Revisa los logs para más detalles!" #. translators: This is part of a larger label that reads " by " #: src/app/components/details/release_details.rs:101 @@ -20,13 +30,11 @@ msgstr "Etiqueta:" #. translators: This refers to a release date #: src/app/components/details/release_details.rs:115 -#, fuzzy msgid "Released:" msgstr "Lanzado:" #. translators: This refers to a number of tracks #: src/app/components/details/release_details.rs:122 -#, fuzzy msgid "Tracks:" msgstr "Canciones:" @@ -71,14 +79,11 @@ msgid "Add to {}" msgstr "Añadir a {}" #. translators: This notification shows up right after login if the password could not be stored in the keyring (that is, GNOME's keyring aka seahorse, or any other libsecret compliant secret store). -#: src/app/components/login/login_model.rs:52 +#: src/app/components/login/login_model.rs:56 msgid "Could not save password. Make sure the session keyring is unlocked." -msgstr "No se pudo guardar la contraseña. Asegúrate de que el anillo de claves esta desbloqueado." - -#. translators: This notification is the default message for unhandled errors. Logs refer to console output. -#: src/app/components/mod.rs:108 -msgid "An error occured. Check logs for details!" -msgstr "Ha ocurrido un error. ¡Revisa los logs para más detalles!" +msgstr "" +"No se pudo guardar la contraseña. Asegúrate de que el anillo de claves esta " +"desbloqueado." #. translators: This is a sidebar entry to browse to saved albums. #: src/app/components/navigation/home.rs:36 @@ -90,12 +95,27 @@ msgstr "Biblioteca" msgid "Playlists" msgstr "Lista de reproducción" +#. translators: This is a sidebar entry to browse to saved tracks. +#. This is the visible name for the list of liked songs. It appears in the sidebar as well. +#: src/app/components/navigation/home.rs:48 +#: src/app/components/saved_tracks/saved_tracks.ui:14 +msgid "Saved tracks" +msgstr "" + #. This is the visible name for the play queue. It appears in the sidebar as well. -#: src/app/components/navigation/home.rs:52 +#: src/app/components/navigation/home.rs:53 #: src/app/components/now_playing/now_playing.ui:14 msgid "Now playing" msgstr "Reproduciendo ahora" +#: src/app/components/playback/playback_controls.rs:64 +msgid "Pause" +msgstr "" + +#: src/app/components/playback/playback_controls.rs:66 +msgid "Play" +msgstr "" + #. translators: Short text displayed instead of a song title when nothing plays #. Short text displayed instead of a song title when nothing plays #: src/app/components/playback/playback_info.rs:58 @@ -139,6 +159,16 @@ msgstr "Cerrar sesión" msgid "Connection restored" msgstr "Conexión restaurada" +#. A title that is shown when the user has not saved any playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:26 +msgid "You have no saved playlists." +msgstr "" + +#. A description of what happens when the user has saved playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:27 +msgid "Your playlists will be shown here." +msgstr "" + #. Title of the section that shows 5 of the top tracks for an artist, as defined by Spotify. #: src/app/components/artist_details/artist_details.ui:40 msgid "Top tracks" @@ -149,6 +179,16 @@ msgstr "Mejores canciones" msgid "Releases" msgstr "Lanzamientos" +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:66 +msgid "Albums" +msgstr "Álbumes" + +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:99 +msgid "Artists" +msgstr "Artistas" + #. Login window title -- shouldn't be too long, but must mention Premium (a premium account is required). #: src/app/components/login/login.ui:45 msgid "Login to Spotify Premium" @@ -164,51 +204,43 @@ msgstr "Usuario" msgid "Password" msgstr "Contraseña" -#. This error is shown when authentication fails. +#. This information is shown when Caps Lock is enabled. #: src/app/components/login/login.ui:95 +msgid "Caps Lock is enabled!" +msgstr "" + +#. This error is shown when authentication fails. +#: src/app/components/login/login.ui:126 msgid "Authentication failed!" msgstr "¡Autenticación fallida!" #. Log in button label -#: src/app/components/login/login.ui:110 +#: src/app/components/login/login.ui:141 msgid "Log in" msgstr "Iniciar sesión" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:66 -msgid "Albums" -msgstr "Álbumes" - -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:99 -msgid "Artists" -msgstr "Artistas" - -#: src/app/components/navigation/home.rs:47 -msgid "Saved tracks" +#: src/app/components/playback/playback_controls.ui:17 +msgid "Shuffle" msgstr "" -#: -msgctxt "A title that is shown when the user has not saved any albums." -msgid "You have no saved albums." +#: src/app/components/playback/playback_controls.ui:27 +msgid "Previous" msgstr "" -#: -msgctxt "A description of what happens when the user has saved albums." -msgid "Your library will be shown here." +#: src/app/components/playback/playback_controls.ui:50 +msgid "Next" msgstr "" -#: -msgctxt "A title that is shown when the user has not saved any playlists." -msgid "You have no saved playlists." +#: src/app/components/playback/playback_controls.ui:60 +msgid "Repeat" msgstr "" -#: -msgctxt "A description of what happens when the user has saved playlists." -msgid "Your playlists will be shown here." +#. A title that is shown when the user has not saved any albums. +#: src/app/components/library/library.ui:26 +msgid "You have no saved albums." msgstr "" -#: -msgid "Caps Lock is enabled!" +#. A description of what happens when the user has saved albums. +#: src/app/components/library/library.ui:27 +msgid "Your library will be shown here." msgstr "" - diff --git a/po/eu.po b/po/eu.po index b3dd4ff4..6d48dc77 100644 --- a/po/eu.po +++ b/po/eu.po @@ -1,13 +1,20 @@ msgid "" msgstr "" +"Project-Id-Version: Spot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-17 08:20-0500\n" +"Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" -"Project-Id-Version: Spot\n" -"Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#. translators: This notification is the default message for unhandled errors. Logs refer to console output. +#: src/app/batch_loader.rs:91 src/app/components/mod.rs:108 +msgid "An error occured. Check logs for details!" +msgstr "Errore bat gertatu da. Egiaztatu xehetasunak erregistroetan!" + #. translators: This is part of a larger label that reads " by " #: src/app/components/details/release_details.rs:101 msgid "by" @@ -69,14 +76,11 @@ msgid "Add to {}" msgstr "Gehitu {} (r)i" #. translators: This notification shows up right after login if the password could not be stored in the keyring (that is, GNOME's keyring aka seahorse, or any other libsecret compliant secret store). -#: src/app/components/login/login_model.rs:52 +#: src/app/components/login/login_model.rs:56 msgid "Could not save password. Make sure the session keyring is unlocked." -msgstr "Ezin izan da pasahitza gorde. Ziurtatu saioko giltzatakoa desblokeatuta dagoela." - -#. translators: This notification is the default message for unhandled errors. Logs refer to console output. -#: src/app/components/mod.rs:108 -msgid "An error occured. Check logs for details!" -msgstr "Errore bat gertatu da. Egiaztatu xehetasunak erregistroetan!" +msgstr "" +"Ezin izan da pasahitza gorde. Ziurtatu saioko giltzatakoa desblokeatuta " +"dagoela." #. translators: This is a sidebar entry to browse to saved albums. #: src/app/components/navigation/home.rs:36 @@ -88,12 +92,27 @@ msgstr "Biblioteka" msgid "Playlists" msgstr "Erreprodukzio-zerrendak" +#. translators: This is a sidebar entry to browse to saved tracks. +#. This is the visible name for the list of liked songs. It appears in the sidebar as well. +#: src/app/components/navigation/home.rs:48 +#: src/app/components/saved_tracks/saved_tracks.ui:14 +msgid "Saved tracks" +msgstr "" + #. This is the visible name for the play queue. It appears in the sidebar as well. -#: src/app/components/navigation/home.rs:52 +#: src/app/components/navigation/home.rs:53 #: src/app/components/now_playing/now_playing.ui:14 msgid "Now playing" msgstr "Orain erreproduzitzen" +#: src/app/components/playback/playback_controls.rs:64 +msgid "Pause" +msgstr "" + +#: src/app/components/playback/playback_controls.rs:66 +msgid "Play" +msgstr "" + #. translators: Short text displayed instead of a song title when nothing plays #. Short text displayed instead of a song title when nothing plays #: src/app/components/playback/playback_info.rs:58 @@ -137,6 +156,16 @@ msgstr "Saioa itxi" msgid "Connection restored" msgstr "Konexioa leheneratu da" +#. A title that is shown when the user has not saved any playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:26 +msgid "You have no saved playlists." +msgstr "" + +#. A description of what happens when the user has saved playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:27 +msgid "Your playlists will be shown here." +msgstr "" + #. Title of the section that shows 5 of the top tracks for an artist, as defined by Spotify. #: src/app/components/artist_details/artist_details.ui:40 msgid "Top tracks" @@ -147,6 +176,16 @@ msgstr "Pista nagusiak" msgid "Releases" msgstr "Jaurtiketak" +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:66 +msgid "Albums" +msgstr "Albumak" + +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:99 +msgid "Artists" +msgstr "Artistak" + #. Login window title -- shouldn't be too long, but must mention Premium (a premium account is required). #: src/app/components/login/login.ui:45 msgid "Login to Spotify Premium" @@ -162,51 +201,43 @@ msgstr "Erabiltzailearen izena" msgid "Password" msgstr "Pasahitza" -#. This error is shown when authentication fails. +#. This information is shown when Caps Lock is enabled. #: src/app/components/login/login.ui:95 +msgid "Caps Lock is enabled!" +msgstr "" + +#. This error is shown when authentication fails. +#: src/app/components/login/login.ui:126 msgid "Authentication failed!" msgstr "Autentifikazioak huts egin du!" #. Log in button label -#: src/app/components/login/login.ui:110 +#: src/app/components/login/login.ui:141 msgid "Log in" msgstr "Hasi saioa" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:66 -msgid "Albums" -msgstr "Albumak" - -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:99 -msgid "Artists" -msgstr "Artistak" - -#: src/app/components/navigation/home.rs:47 -msgid "Saved tracks" +#: src/app/components/playback/playback_controls.ui:17 +msgid "Shuffle" msgstr "" -#: -msgctxt "A title that is shown when the user has not saved any albums." -msgid "You have no saved albums." +#: src/app/components/playback/playback_controls.ui:27 +msgid "Previous" msgstr "" -#: -msgctxt "A description of what happens when the user has saved albums." -msgid "Your library will be shown here." +#: src/app/components/playback/playback_controls.ui:50 +msgid "Next" msgstr "" -#: -msgctxt "A title that is shown when the user has not saved any playlists." -msgid "You have no saved playlists." +#: src/app/components/playback/playback_controls.ui:60 +msgid "Repeat" msgstr "" -#: -msgctxt "A description of what happens when the user has saved playlists." -msgid "Your playlists will be shown here." +#. A title that is shown when the user has not saved any albums. +#: src/app/components/library/library.ui:26 +msgid "You have no saved albums." msgstr "" -#: -msgid "Caps Lock is enabled!" +#. A description of what happens when the user has saved albums. +#: src/app/components/library/library.ui:27 +msgid "Your library will be shown here." msgstr "" - diff --git a/po/fi.po b/po/fi.po index 9847a193..898d828d 100644 --- a/po/fi.po +++ b/po/fi.po @@ -1,12 +1,22 @@ msgid "" msgstr "" +"Project-Id-Version: Spot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-17 08:20-0500\n" +"Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: POEditor.com\n" -"Project-Id-Version: Spot\n" -"Language: fi\n" +"X-Generator: Poedit 3.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" + +#. translators: This notification is the default message for unhandled errors. Logs refer to console output. +#: src/app/batch_loader.rs:91 src/app/components/mod.rs:108 +msgid "An error occured. Check logs for details!" +msgstr "Tapahti virhe. Katso lisätiedot lokista!" #. translators: This is part of a larger label that reads " by " #: src/app/components/details/release_details.rs:101 @@ -69,15 +79,10 @@ msgid "Add to {}" msgstr "Lisää kohteeseen {}" #. translators: This notification shows up right after login if the password could not be stored in the keyring (that is, GNOME's keyring aka seahorse, or any other libsecret compliant secret store). -#: src/app/components/login/login_model.rs:52 +#: src/app/components/login/login_model.rs:56 msgid "Could not save password. Make sure the session keyring is unlocked." msgstr "Salasanaa ei voitu tallentaa. Varmista että avainnippua ei ole lukittu." -#. translators: This notification is the default message for unhandled errors. Logs refer to console output. -#: src/app/components/mod.rs:108 -msgid "An error occured. Check logs for details!" -msgstr "Tapahti virhe. Katso lisätiedot lokista!" - #. translators: This is a sidebar entry to browse to saved albums. #: src/app/components/navigation/home.rs:36 msgid "Library" @@ -88,12 +93,27 @@ msgstr "Kirjasto" msgid "Playlists" msgstr "Soittolistat" +#. translators: This is a sidebar entry to browse to saved tracks. +#. This is the visible name for the list of liked songs. It appears in the sidebar as well. +#: src/app/components/navigation/home.rs:48 +#: src/app/components/saved_tracks/saved_tracks.ui:14 +msgid "Saved tracks" +msgstr "Tallennetut kappaleet" + #. This is the visible name for the play queue. It appears in the sidebar as well. -#: src/app/components/navigation/home.rs:52 +#: src/app/components/navigation/home.rs:53 #: src/app/components/now_playing/now_playing.ui:14 msgid "Now playing" msgstr "Nyt toistetaan" +#: src/app/components/playback/playback_controls.rs:64 +msgid "Pause" +msgstr "Keskeytä" + +#: src/app/components/playback/playback_controls.rs:66 +msgid "Play" +msgstr "Toista" + #. translators: Short text displayed instead of a song title when nothing plays #. Short text displayed instead of a song title when nothing plays #: src/app/components/playback/playback_info.rs:58 @@ -137,6 +157,16 @@ msgstr "Kirjaudu ulos" msgid "Connection restored" msgstr "Yhteys palautunut" +#. A title that is shown when the user has not saved any playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:26 +msgid "You have no saved playlists." +msgstr "Ei tallennettuja soittolistoja." + +#. A description of what happens when the user has saved playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:27 +msgid "Your playlists will be shown here." +msgstr "Soittolistasi näytetään täällä." + #. Title of the section that shows 5 of the top tracks for an artist, as defined by Spotify. #: src/app/components/artist_details/artist_details.ui:40 msgid "Top tracks" @@ -147,6 +177,16 @@ msgstr "Suosituimmat kappaleet" msgid "Releases" msgstr "Julkaisut" +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:66 +msgid "Albums" +msgstr "Albumit" + +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:99 +msgid "Artists" +msgstr "Esittäjät" + #. Login window title -- shouldn't be too long, but must mention Premium (a premium account is required). #: src/app/components/login/login.ui:45 msgid "Login to Spotify Premium" @@ -162,51 +202,43 @@ msgstr "Käyttäjätunnus" msgid "Password" msgstr "Salasana" -#. This error is shown when authentication fails. +#. This information is shown when Caps Lock is enabled. #: src/app/components/login/login.ui:95 +msgid "Caps Lock is enabled!" +msgstr "Caps Lock on päällä!" + +#. This error is shown when authentication fails. +#: src/app/components/login/login.ui:126 msgid "Authentication failed!" msgstr "Tunnistautuminen epäonnistui!" #. Log in button label -#: src/app/components/login/login.ui:110 +#: src/app/components/login/login.ui:141 msgid "Log in" msgstr "Kirjaudu sisään" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:66 -msgid "Albums" -msgstr "Albumit" +#: src/app/components/playback/playback_controls.ui:17 +msgid "Shuffle" +msgstr "Sekoita" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:99 -msgid "Artists" -msgstr "Esittäjät" +#: src/app/components/playback/playback_controls.ui:27 +msgid "Previous" +msgstr "Edellinen" -#: src/app/components/navigation/home.rs:47 -msgid "Saved tracks" -msgstr "" +#: src/app/components/playback/playback_controls.ui:50 +msgid "Next" +msgstr "Seuraava" + +#: src/app/components/playback/playback_controls.ui:60 +msgid "Repeat" +msgstr "Kertaa" -#: -msgctxt "A title that is shown when the user has not saved any albums." +#. A title that is shown when the user has not saved any albums. +#: src/app/components/library/library.ui:26 msgid "You have no saved albums." -msgstr "" +msgstr "Ei tallennettuja albumeja." -#: -msgctxt "A description of what happens when the user has saved albums." +#. A description of what happens when the user has saved albums. +#: src/app/components/library/library.ui:27 msgid "Your library will be shown here." -msgstr "" - -#: -msgctxt "A title that is shown when the user has not saved any playlists." -msgid "You have no saved playlists." -msgstr "" - -#: -msgctxt "A description of what happens when the user has saved playlists." -msgid "Your playlists will be shown here." -msgstr "" - -#: -msgid "Caps Lock is enabled!" -msgstr "" - +msgstr "Kirjastosi näytetään täällä." diff --git a/po/fr.po b/po/fr.po index 446840ad..298db6b4 100644 --- a/po/fr.po +++ b/po/fr.po @@ -1,12 +1,24 @@ msgid "" msgstr "" +"Project-Id-Version: Spot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-17 08:20-0500\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: POEditor.com\n" -"Project-Id-Version: Spot\n" -"Language: fr\n" +"X-Generator: Poedit 3.0\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" + +#. translators: This notification is the default message for unhandled errors. Logs refer to console output. +#: src/app/batch_loader.rs:91 src/app/components/mod.rs:108 +msgid "An error occured. Check logs for details!" +msgstr "" +"Une erreur est survenue. Consultez les journaux de débogage pour plus " +"d'information." #. translators: This is part of a larger label that reads " by " #: src/app/components/details/release_details.rs:101 @@ -69,14 +81,11 @@ msgid "Add to {}" msgstr "Ajouter à {}" #. translators: This notification shows up right after login if the password could not be stored in the keyring (that is, GNOME's keyring aka seahorse, or any other libsecret compliant secret store). -#: src/app/components/login/login_model.rs:52 +#: src/app/components/login/login_model.rs:56 msgid "Could not save password. Make sure the session keyring is unlocked." -msgstr "Le mot de passe n'a pu être enregistré, assurez-vous que le Trousseau de session est déverouillé." - -#. translators: This notification is the default message for unhandled errors. Logs refer to console output. -#: src/app/components/mod.rs:108 -msgid "An error occured. Check logs for details!" -msgstr "Une erreur est survenue. Consultez les journaux de débogage pour plus d'information." +msgstr "" +"Le mot de passe n'a pu être enregistré, assurez-vous que le Trousseau de " +"session est déverouillé." #. translators: This is a sidebar entry to browse to saved albums. #: src/app/components/navigation/home.rs:36 @@ -88,12 +97,27 @@ msgstr "Bibliothèque" msgid "Playlists" msgstr "Listes de lecture" +#. translators: This is a sidebar entry to browse to saved tracks. +#. This is the visible name for the list of liked songs. It appears in the sidebar as well. +#: src/app/components/navigation/home.rs:48 +#: src/app/components/saved_tracks/saved_tracks.ui:14 +msgid "Saved tracks" +msgstr "Titres aimés" + #. This is the visible name for the play queue. It appears in the sidebar as well. -#: src/app/components/navigation/home.rs:52 +#: src/app/components/navigation/home.rs:53 #: src/app/components/now_playing/now_playing.ui:14 msgid "Now playing" msgstr "En cours de lecture" +#: src/app/components/playback/playback_controls.rs:64 +msgid "Pause" +msgstr "" + +#: src/app/components/playback/playback_controls.rs:66 +msgid "Play" +msgstr "" + #. translators: Short text displayed instead of a song title when nothing plays #. Short text displayed instead of a song title when nothing plays #: src/app/components/playback/playback_info.rs:58 @@ -137,6 +161,16 @@ msgstr "Déconnexion" msgid "Connection restored" msgstr "Connexion rétablie" +#. A title that is shown when the user has not saved any playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:26 +msgid "You have no saved playlists." +msgstr "Aucune liste de lecture enregistrée." + +#. A description of what happens when the user has saved playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:27 +msgid "Your playlists will be shown here." +msgstr "Vos listes de lectures apparaîtrons ici." + #. Title of the section that shows 5 of the top tracks for an artist, as defined by Spotify. #: src/app/components/artist_details/artist_details.ui:40 msgid "Top tracks" @@ -147,6 +181,16 @@ msgstr "Morceaux populaires" msgid "Releases" msgstr "Discographie" +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:66 +msgid "Albums" +msgstr "Albums" + +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:99 +msgid "Artists" +msgstr "Artistes" + #. Login window title -- shouldn't be too long, but must mention Premium (a premium account is required). #: src/app/components/login/login.ui:45 msgid "Login to Spotify Premium" @@ -162,51 +206,43 @@ msgstr "Nom d'utilisateur" msgid "Password" msgstr "Mot de passe" -#. This error is shown when authentication fails. +#. This information is shown when Caps Lock is enabled. #: src/app/components/login/login.ui:95 +msgid "Caps Lock is enabled!" +msgstr "" + +#. This error is shown when authentication fails. +#: src/app/components/login/login.ui:126 msgid "Authentication failed!" msgstr "L'authentification a échoué !" #. Log in button label -#: src/app/components/login/login.ui:110 +#: src/app/components/login/login.ui:141 msgid "Log in" msgstr "Connexion" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:66 -msgid "Albums" -msgstr "Albums" +#: src/app/components/playback/playback_controls.ui:17 +msgid "Shuffle" +msgstr "" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:99 -msgid "Artists" -msgstr "Artistes" +#: src/app/components/playback/playback_controls.ui:27 +msgid "Previous" +msgstr "" -#: src/app/components/navigation/home.rs:47 -msgid "Saved tracks" -msgstr "Titres aimés" +#: src/app/components/playback/playback_controls.ui:50 +msgid "Next" +msgstr "" -#: -msgctxt "A title that is shown when the user has not saved any albums." +#: src/app/components/playback/playback_controls.ui:60 +msgid "Repeat" +msgstr "" + +#. A title that is shown when the user has not saved any albums. +#: src/app/components/library/library.ui:26 msgid "You have no saved albums." msgstr "Aucun album dans votre bibliothèque." -#: -msgctxt "A description of what happens when the user has saved albums." +#. A description of what happens when the user has saved albums. +#: src/app/components/library/library.ui:27 msgid "Your library will be shown here." msgstr "Vos albums apparaîtrons ici." - -#: -msgctxt "A title that is shown when the user has not saved any playlists." -msgid "You have no saved playlists." -msgstr "Aucune liste de lecture enregistrée." - -#: -msgctxt "A description of what happens when the user has saved playlists." -msgid "Your playlists will be shown here." -msgstr "Vos listes de lectures apparaîtrons ici." - -#: -msgid "Caps Lock is enabled!" -msgstr "" - diff --git a/po/ia.po b/po/ia.po index a4b70ce2..dc1652a2 100644 --- a/po/ia.po +++ b/po/ia.po @@ -1,12 +1,22 @@ msgid "" msgstr "" +"Project-Id-Version: Spot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-17 08:20-0500\n" +"Language: ia\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: POEditor.com\n" -"Project-Id-Version: Spot\n" -"Language: ia\n" +"X-Generator: Poedit 3.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" + +#. translators: This notification is the default message for unhandled errors. Logs refer to console output. +#: src/app/batch_loader.rs:91 src/app/components/mod.rs:108 +msgid "An error occured. Check logs for details!" +msgstr "Ocurreva un error. Verifica le registros pro detalios!" #. translators: This is part of a larger label that reads " by " #: src/app/components/details/release_details.rs:101 @@ -69,14 +79,11 @@ msgid "Add to {}" msgstr "Adder a {}" #. translators: This notification shows up right after login if the password could not be stored in the keyring (that is, GNOME's keyring aka seahorse, or any other libsecret compliant secret store). -#: src/app/components/login/login_model.rs:52 +#: src/app/components/login/login_model.rs:56 msgid "Could not save password. Make sure the session keyring is unlocked." -msgstr "Non poteva salvar le contrasigno. Assecura te qui le magazin de claves es disblocate." - -#. translators: This notification is the default message for unhandled errors. Logs refer to console output. -#: src/app/components/mod.rs:108 -msgid "An error occured. Check logs for details!" -msgstr "Ocurreva un error. Verifica le registros pro detalios!" +msgstr "" +"Non poteva salvar le contrasigno. Assecura te qui le magazin de claves es " +"disblocate." #. translators: This is a sidebar entry to browse to saved albums. #: src/app/components/navigation/home.rs:36 @@ -88,12 +95,27 @@ msgstr "Bibliotheca" msgid "Playlists" msgstr "Listas de reproduction" +#. translators: This is a sidebar entry to browse to saved tracks. +#. This is the visible name for the list of liked songs. It appears in the sidebar as well. +#: src/app/components/navigation/home.rs:48 +#: src/app/components/saved_tracks/saved_tracks.ui:14 +msgid "Saved tracks" +msgstr "Tracias salvate" + #. This is the visible name for the play queue. It appears in the sidebar as well. -#: src/app/components/navigation/home.rs:52 +#: src/app/components/navigation/home.rs:53 #: src/app/components/now_playing/now_playing.ui:14 msgid "Now playing" msgstr "Ora in reproduction" +#: src/app/components/playback/playback_controls.rs:64 +msgid "Pause" +msgstr "Pausar" + +#: src/app/components/playback/playback_controls.rs:66 +msgid "Play" +msgstr "Reproducer" + #. translators: Short text displayed instead of a song title when nothing plays #. Short text displayed instead of a song title when nothing plays #: src/app/components/playback/playback_info.rs:58 @@ -137,6 +159,16 @@ msgstr "Clauder le session" msgid "Connection restored" msgstr "Connexion restabilite" +#. A title that is shown when the user has not saved any playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:26 +msgid "You have no saved playlists." +msgstr "Tu non ha listas de reproduction salvate." + +#. A description of what happens when the user has saved playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:27 +msgid "Your playlists will be shown here." +msgstr "Tu listas de reproduction essera monstrate hic." + #. Title of the section that shows 5 of the top tracks for an artist, as defined by Spotify. #: src/app/components/artist_details/artist_details.ui:40 msgid "Top tracks" @@ -147,6 +179,16 @@ msgstr "Melior tracias" msgid "Releases" msgstr "Lanciamentos" +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:66 +msgid "Albums" +msgstr "Albumes" + +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:99 +msgid "Artists" +msgstr "Artistas" + #. Login window title -- shouldn't be too long, but must mention Premium (a premium account is required). #: src/app/components/login/login.ui:45 msgid "Login to Spotify Premium" @@ -162,51 +204,43 @@ msgstr "Nomine de usator" msgid "Password" msgstr "Contrasigno" -#. This error is shown when authentication fails. +#. This information is shown when Caps Lock is enabled. #: src/app/components/login/login.ui:95 +msgid "Caps Lock is enabled!" +msgstr "Serratura de majusculas es activate!" + +#. This error is shown when authentication fails. +#: src/app/components/login/login.ui:126 msgid "Authentication failed!" msgstr "Falleva le authentication!" #. Log in button label -#: src/app/components/login/login.ui:110 +#: src/app/components/login/login.ui:141 msgid "Log in" msgstr "Initiar session" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:66 -msgid "Albums" -msgstr "Albumes" +#: src/app/components/playback/playback_controls.ui:17 +msgid "Shuffle" +msgstr "Aleatori" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:99 -msgid "Artists" -msgstr "Artistas" +#: src/app/components/playback/playback_controls.ui:27 +msgid "Previous" +msgstr "Previe" -#: src/app/components/navigation/home.rs:47 -msgid "Saved tracks" -msgstr "" +#: src/app/components/playback/playback_controls.ui:50 +msgid "Next" +msgstr "Sequente" + +#: src/app/components/playback/playback_controls.ui:60 +msgid "Repeat" +msgstr "Repeter" -#: -msgctxt "A title that is shown when the user has not saved any albums." +#. A title that is shown when the user has not saved any albums. +#: src/app/components/library/library.ui:26 msgid "You have no saved albums." -msgstr "" +msgstr "Tu ha nulle albumes salvate." -#: -msgctxt "A description of what happens when the user has saved albums." +#. A description of what happens when the user has saved albums. +#: src/app/components/library/library.ui:27 msgid "Your library will be shown here." -msgstr "" - -#: -msgctxt "A title that is shown when the user has not saved any playlists." -msgid "You have no saved playlists." -msgstr "" - -#: -msgctxt "A description of what happens when the user has saved playlists." -msgid "Your playlists will be shown here." -msgstr "" - -#: -msgid "Caps Lock is enabled!" -msgstr "" - +msgstr "Tu bibliotheca essera monstrate ci." diff --git a/po/id.po b/po/id.po index 6f1e61a2..f4089048 100644 --- a/po/id.po +++ b/po/id.po @@ -1,16 +1,22 @@ msgid "" msgstr "" +"Project-Id-Version: Spot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-17 08:29-0500\n" +"PO-Revision-Date: \n" +"Last-Translator: Kukuh Syafaat \n" +"Language-Team: \n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.0\n" -"Project-Id-Version: Spot\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -"POT-Creation-Date: \n" -"PO-Revision-Date: \n" -"Last-Translator: Kukuh Syafaat \n" -"Language-Team: \n" + +#. translators: This notification is the default message for unhandled errors. Logs refer to console output. +#: src/app/batch_loader.rs:91 src/app/components/mod.rs:108 +msgid "An error occured. Check logs for details!" +msgstr "Timbul galat. Periksa log untuk detailnya!" #. translators: This is part of a larger label that reads " by " #: src/app/components/details/release_details.rs:101 @@ -73,15 +79,10 @@ msgid "Add to {}" msgstr "Tambah ke {}" #. translators: This notification shows up right after login if the password could not be stored in the keyring (that is, GNOME's keyring aka seahorse, or any other libsecret compliant secret store). -#: src/app/components/login/login_model.rs:52 +#: src/app/components/login/login_model.rs:56 msgid "Could not save password. Make sure the session keyring is unlocked." msgstr "Tak bisa menyimpan sandi. Pastikan bahwa kunci sesi tidak terkunci." -#. translators: This notification is the default message for unhandled errors. Logs refer to console output. -#: src/app/components/mod.rs:108 -msgid "An error occured. Check logs for details!" -msgstr "Timbul galat. Periksa log untuk detailnya!" - #. translators: This is a sidebar entry to browse to saved albums. #: src/app/components/navigation/home.rs:36 msgid "Library" @@ -92,12 +93,28 @@ msgstr "Pustaka" msgid "Playlists" msgstr "Daftar putar" +#. translators: This is a sidebar entry to browse to saved tracks. +#. This is the visible name for the list of liked songs. It appears in the sidebar as well. +#: src/app/components/navigation/home.rs:48 +#: src/app/components/saved_tracks/saved_tracks.ui:14 +msgid "Saved tracks" +msgstr "Trek yang disimpan" + #. This is the visible name for the play queue. It appears in the sidebar as well. -#: src/app/components/navigation/home.rs:52 +#: src/app/components/navigation/home.rs:53 #: src/app/components/now_playing/now_playing.ui:14 msgid "Now playing" msgstr "Sedang memutar" +#: src/app/components/playback/playback_controls.rs:64 +msgid "Pause" +msgstr "" + +#: src/app/components/playback/playback_controls.rs:66 +#, fuzzy +msgid "Play" +msgstr "Daftar putar" + #. translators: Short text displayed instead of a song title when nothing plays #. Short text displayed instead of a song title when nothing plays #: src/app/components/playback/playback_info.rs:58 @@ -140,6 +157,16 @@ msgstr "Log keluar" msgid "Connection restored" msgstr "Sambungan dipulihkan" +#. A title that is shown when the user has not saved any playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:26 +msgid "You have no saved playlists." +msgstr "Anda tidak memiliki daftar putar yang disimpan." + +#. A description of what happens when the user has saved playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:27 +msgid "Your playlists will be shown here." +msgstr "Daftar putar Anda akan ditampilkan di sini." + #. Title of the section that shows 5 of the top tracks for an artist, as defined by Spotify. #: src/app/components/artist_details/artist_details.ui:40 msgid "Top tracks" @@ -150,6 +177,16 @@ msgstr "Trek teratas" msgid "Releases" msgstr "Rilis" +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:66 +msgid "Albums" +msgstr "Album" + +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:99 +msgid "Artists" +msgstr "Artis" + #. Login window title -- shouldn't be too long, but must mention Premium (a premium account is required). #: src/app/components/login/login.ui:45 msgid "Login to Spotify Premium" @@ -165,45 +202,43 @@ msgstr "Nama Pengguna" msgid "Password" msgstr "Kata Sandi" -#. This error is shown when authentication fails. +#. This information is shown when Caps Lock is enabled. #: src/app/components/login/login.ui:95 +msgid "Caps Lock is enabled!" +msgstr "Caps Lock diaktifkan!" + +#. This error is shown when authentication fails. +#: src/app/components/login/login.ui:126 msgid "Authentication failed!" msgstr "Autentikasi gagal!" #. Log in button label -#: src/app/components/login/login.ui:110 +#: src/app/components/login/login.ui:141 msgid "Log in" msgstr "Log masuk" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:66 -msgid "Albums" -msgstr "Album" +#: src/app/components/playback/playback_controls.ui:17 +msgid "Shuffle" +msgstr "" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:99 -msgid "Artists" -msgstr "Artis" +#: src/app/components/playback/playback_controls.ui:27 +msgid "Previous" +msgstr "" -#: src/app/components/navigation/home.rs:47 -msgid "Saved tracks" -msgstr "Trek yang disimpan" +#: src/app/components/playback/playback_controls.ui:50 +msgid "Next" +msgstr "" + +#: src/app/components/playback/playback_controls.ui:60 +msgid "Repeat" +msgstr "" -msgctxt "A title that is shown when the user has not saved any albums." +#. A title that is shown when the user has not saved any albums. +#: src/app/components/library/library.ui:26 msgid "You have no saved albums." msgstr "Anda tidak memiliki album yang disimpan." -msgctxt "A description of what happens when the user has saved albums." +#. A description of what happens when the user has saved albums. +#: src/app/components/library/library.ui:27 msgid "Your library will be shown here." msgstr "Pustaka Anda akan ditampilkan di sini." - -msgctxt "A title that is shown when the user has not saved any playlists." -msgid "You have no saved playlists." -msgstr "Anda tidak memiliki daftar putar yang disimpan." - -msgctxt "A description of what happens when the user has saved playlists." -msgid "Your playlists will be shown here." -msgstr "Daftar putar Anda akan ditampilkan di sini." - -msgid "Caps Lock is enabled!" -msgstr "Caps Lock diaktifkan!" diff --git a/po/nb.po b/po/nb.po index b2ba5edb..67ff84fa 100644 --- a/po/nb.po +++ b/po/nb.po @@ -1,12 +1,22 @@ msgid "" msgstr "" +"Project-Id-Version: Spot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-17 08:20-0500\n" +"Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: POEditor.com\n" -"Project-Id-Version: Spot\n" -"Language: nb\n" +"X-Generator: Poedit 3.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" + +#. translators: This notification is the default message for unhandled errors. Logs refer to console output. +#: src/app/batch_loader.rs:91 src/app/components/mod.rs:108 +msgid "An error occured. Check logs for details!" +msgstr "En feil oppstod. Sjekk logger for detaljer!" #. translators: This is part of a larger label that reads " by " #: src/app/components/details/release_details.rs:101 @@ -69,14 +79,11 @@ msgid "Add to {}" msgstr "Legg i {}" #. translators: This notification shows up right after login if the password could not be stored in the keyring (that is, GNOME's keyring aka seahorse, or any other libsecret compliant secret store). -#: src/app/components/login/login_model.rs:52 +#: src/app/components/login/login_model.rs:56 msgid "Could not save password. Make sure the session keyring is unlocked." -msgstr "Kunne ikke lagre passordet. Sørg for at nøkkelringen til sesjonen er låst opp." - -#. translators: This notification is the default message for unhandled errors. Logs refer to console output. -#: src/app/components/mod.rs:108 -msgid "An error occured. Check logs for details!" -msgstr "En feil oppstod. Sjekk logger for detaljer!" +msgstr "" +"Kunne ikke lagre passordet. Sørg for at nøkkelringen til sesjonen er låst " +"opp." #. translators: This is a sidebar entry to browse to saved albums. #: src/app/components/navigation/home.rs:36 @@ -88,12 +95,27 @@ msgstr "Bibliotek" msgid "Playlists" msgstr "Spillelister" +#. translators: This is a sidebar entry to browse to saved tracks. +#. This is the visible name for the list of liked songs. It appears in the sidebar as well. +#: src/app/components/navigation/home.rs:48 +#: src/app/components/saved_tracks/saved_tracks.ui:14 +msgid "Saved tracks" +msgstr "Lagrede spor" + #. This is the visible name for the play queue. It appears in the sidebar as well. -#: src/app/components/navigation/home.rs:52 +#: src/app/components/navigation/home.rs:53 #: src/app/components/now_playing/now_playing.ui:14 msgid "Now playing" msgstr "Nå spiller" +#: src/app/components/playback/playback_controls.rs:64 +msgid "Pause" +msgstr "Pause" + +#: src/app/components/playback/playback_controls.rs:66 +msgid "Play" +msgstr "Spill av" + #. translators: Short text displayed instead of a song title when nothing plays #. Short text displayed instead of a song title when nothing plays #: src/app/components/playback/playback_info.rs:58 @@ -137,6 +159,16 @@ msgstr "Logg ut" msgid "Connection restored" msgstr "Tilkoblingen er gjenopprettet" +#. A title that is shown when the user has not saved any playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:26 +msgid "You have no saved playlists." +msgstr "Du har ingen lagrede spillelister." + +#. A description of what happens when the user has saved playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:27 +msgid "Your playlists will be shown here." +msgstr "Spillelistene dine vises her." + #. Title of the section that shows 5 of the top tracks for an artist, as defined by Spotify. #: src/app/components/artist_details/artist_details.ui:40 msgid "Top tracks" @@ -147,6 +179,16 @@ msgstr "Topp spor" msgid "Releases" msgstr "Utgivelser" +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:66 +msgid "Albums" +msgstr "Album" + +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:99 +msgid "Artists" +msgstr "Artister" + #. Login window title -- shouldn't be too long, but must mention Premium (a premium account is required). #: src/app/components/login/login.ui:45 msgid "Login to Spotify Premium" @@ -162,51 +204,43 @@ msgstr "Brukernavn" msgid "Password" msgstr "Passord" -#. This error is shown when authentication fails. +#. This information is shown when Caps Lock is enabled. #: src/app/components/login/login.ui:95 +msgid "Caps Lock is enabled!" +msgstr "Caps Lock er aktivert!" + +#. This error is shown when authentication fails. +#: src/app/components/login/login.ui:126 msgid "Authentication failed!" msgstr "Autentiseringen mislyktes!" #. Log in button label -#: src/app/components/login/login.ui:110 +#: src/app/components/login/login.ui:141 msgid "Log in" msgstr "Logg inn" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:66 -msgid "Albums" -msgstr "Album" +#: src/app/components/playback/playback_controls.ui:17 +msgid "Shuffle" +msgstr "Tilfeldig" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:99 -msgid "Artists" -msgstr "Artister" +#: src/app/components/playback/playback_controls.ui:27 +msgid "Previous" +msgstr "Forrige" -#: src/app/components/navigation/home.rs:47 -msgid "Saved tracks" -msgstr "Lagrede spor" +#: src/app/components/playback/playback_controls.ui:50 +msgid "Next" +msgstr "Neste" + +#: src/app/components/playback/playback_controls.ui:60 +msgid "Repeat" +msgstr "Gjenta" -#: -msgctxt "A title that is shown when the user has not saved any albums." +#. A title that is shown when the user has not saved any albums. +#: src/app/components/library/library.ui:26 msgid "You have no saved albums." msgstr "Du har ingen lagrede album." -#: -msgctxt "A description of what happens when the user has saved albums." +#. A description of what happens when the user has saved albums. +#: src/app/components/library/library.ui:27 msgid "Your library will be shown here." msgstr "Biblioteket ditt vises her." - -#: -msgctxt "A title that is shown when the user has not saved any playlists." -msgid "You have no saved playlists." -msgstr "Du har ingen lagrede spillelister." - -#: -msgctxt "A description of what happens when the user has saved playlists." -msgid "Your playlists will be shown here." -msgstr "Spillelistene dine vises her." - -#: -msgid "Caps Lock is enabled!" -msgstr "" - diff --git a/po/nl.po b/po/nl.po index 59184fa6..56403208 100644 --- a/po/nl.po +++ b/po/nl.po @@ -1,12 +1,22 @@ msgid "" msgstr "" +"Project-Id-Version: Spot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-17 08:20-0500\n" +"Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: POEditor.com\n" -"Project-Id-Version: Spot\n" -"Language: nl\n" +"X-Generator: Poedit 3.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" + +#. translators: This notification is the default message for unhandled errors. Logs refer to console output. +#: src/app/batch_loader.rs:91 src/app/components/mod.rs:108 +msgid "An error occured. Check logs for details!" +msgstr "Er is een fout opgetreden - bekijk het logboek!" #. translators: This is part of a larger label that reads " by " #: src/app/components/details/release_details.rs:101 @@ -69,14 +79,11 @@ msgid "Add to {}" msgstr "Toevoegen aan {}" #. translators: This notification shows up right after login if the password could not be stored in the keyring (that is, GNOME's keyring aka seahorse, or any other libsecret compliant secret store). -#: src/app/components/login/login_model.rs:52 +#: src/app/components/login/login_model.rs:56 msgid "Could not save password. Make sure the session keyring is unlocked." -msgstr "Het wachtwoord kan niet worden opgeslagen - zorg dat de sessiesleutelhanger ontgrendeld is." - -#. translators: This notification is the default message for unhandled errors. Logs refer to console output. -#: src/app/components/mod.rs:108 -msgid "An error occured. Check logs for details!" -msgstr "Er is een fout opgetreden - bekijk het logboek!" +msgstr "" +"Het wachtwoord kan niet worden opgeslagen - zorg dat de sessiesleutelhanger " +"ontgrendeld is." #. translators: This is a sidebar entry to browse to saved albums. #: src/app/components/navigation/home.rs:36 @@ -88,12 +95,27 @@ msgstr "Verzameling" msgid "Playlists" msgstr "Afspeellijsten" +#. translators: This is a sidebar entry to browse to saved tracks. +#. This is the visible name for the list of liked songs. It appears in the sidebar as well. +#: src/app/components/navigation/home.rs:48 +#: src/app/components/saved_tracks/saved_tracks.ui:14 +msgid "Saved tracks" +msgstr "Opgeslagen nummers" + #. This is the visible name for the play queue. It appears in the sidebar as well. -#: src/app/components/navigation/home.rs:52 +#: src/app/components/navigation/home.rs:53 #: src/app/components/now_playing/now_playing.ui:14 msgid "Now playing" msgstr "Je luistert naar" +#: src/app/components/playback/playback_controls.rs:64 +msgid "Pause" +msgstr "Pauzeren" + +#: src/app/components/playback/playback_controls.rs:66 +msgid "Play" +msgstr "Afspelen" + #. translators: Short text displayed instead of a song title when nothing plays #. Short text displayed instead of a song title when nothing plays #: src/app/components/playback/playback_info.rs:58 @@ -137,6 +159,16 @@ msgstr "Uitloggen" msgid "Connection restored" msgstr "De verbinding is hersteld" +#. A title that is shown when the user has not saved any playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:26 +msgid "You have no saved playlists." +msgstr "Je hebt nog geen opgeslagen afspeellijsten." + +#. A description of what happens when the user has saved playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:27 +msgid "Your playlists will be shown here." +msgstr "Je afspeellijsten worden hier getoond." + #. Title of the section that shows 5 of the top tracks for an artist, as defined by Spotify. #: src/app/components/artist_details/artist_details.ui:40 msgid "Top tracks" @@ -147,6 +179,16 @@ msgstr "Topnummers" msgid "Releases" msgstr "Uitgaven" +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:66 +msgid "Albums" +msgstr "Albums" + +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:99 +msgid "Artists" +msgstr "Artiesten" + #. Login window title -- shouldn't be too long, but must mention Premium (a premium account is required). #: src/app/components/login/login.ui:45 msgid "Login to Spotify Premium" @@ -162,51 +204,43 @@ msgstr "Gebruikersnaam" msgid "Password" msgstr "Wachtwoord" -#. This error is shown when authentication fails. +#. This information is shown when Caps Lock is enabled. #: src/app/components/login/login.ui:95 +msgid "Caps Lock is enabled!" +msgstr "Caps Lock is ingeschakeld!" + +#. This error is shown when authentication fails. +#: src/app/components/login/login.ui:126 msgid "Authentication failed!" msgstr "Het inloggen is mislukt." #. Log in button label -#: src/app/components/login/login.ui:110 +#: src/app/components/login/login.ui:141 msgid "Log in" msgstr "Inloggen" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:66 -msgid "Albums" -msgstr "Albums" +#: src/app/components/playback/playback_controls.ui:17 +msgid "Shuffle" +msgstr "Willekeurig" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:99 -msgid "Artists" -msgstr "Artiesten" +#: src/app/components/playback/playback_controls.ui:27 +msgid "Previous" +msgstr "Vorige" -#: src/app/components/navigation/home.rs:47 -msgid "Saved tracks" -msgstr "Opgeslagen nummers" +#: src/app/components/playback/playback_controls.ui:50 +msgid "Next" +msgstr "Volgende" -#: -msgctxt "A title that is shown when the user has not saved any albums." +#: src/app/components/playback/playback_controls.ui:60 +msgid "Repeat" +msgstr "Herhalen" + +#. A title that is shown when the user has not saved any albums. +#: src/app/components/library/library.ui:26 msgid "You have no saved albums." msgstr "Je hebt nog geen opgeslagen albums." -#: -msgctxt "A description of what happens when the user has saved albums." +#. A description of what happens when the user has saved albums. +#: src/app/components/library/library.ui:27 msgid "Your library will be shown here." msgstr "Je verzameling wordt hier getoond." - -#: -msgctxt "A title that is shown when the user has not saved any playlists." -msgid "You have no saved playlists." -msgstr "Je hebt nog geen opgeslagen afspeellijsten." - -#: -msgctxt "A description of what happens when the user has saved playlists." -msgid "Your playlists will be shown here." -msgstr "Je afspeellijsten worden hier getoond." - -#: -msgid "Caps Lock is enabled!" -msgstr "Caps Lock is ingeschakeld!" - diff --git a/po/pl.po b/po/pl.po index d8d808d0..ba500c7b 100644 --- a/po/pl.po +++ b/po/pl.po @@ -1,12 +1,23 @@ msgid "" msgstr "" +"Project-Id-Version: Spot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-17 08:20-0500\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: POEditor.com\n" -"Project-Id-Version: Spot\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Poedit 3.0\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" + +#. translators: This notification is the default message for unhandled errors. Logs refer to console output. +#: src/app/batch_loader.rs:91 src/app/components/mod.rs:108 +msgid "An error occured. Check logs for details!" +msgstr "Wystąpił błąd. Sprawdź logi po więcej informacji!" #. translators: This is part of a larger label that reads " by " #: src/app/components/details/release_details.rs:101 @@ -69,14 +80,11 @@ msgid "Add to {}" msgstr "Dodaj do" #. translators: This notification shows up right after login if the password could not be stored in the keyring (that is, GNOME's keyring aka seahorse, or any other libsecret compliant secret store). -#: src/app/components/login/login_model.rs:52 +#: src/app/components/login/login_model.rs:56 msgid "Could not save password. Make sure the session keyring is unlocked." -msgstr "Nie można zapisać hasła. Upewnij się że narzędzie zarządzające kluczami jest odblokowane." - -#. translators: This notification is the default message for unhandled errors. Logs refer to console output. -#: src/app/components/mod.rs:108 -msgid "An error occured. Check logs for details!" -msgstr "Wystąpił błąd. Sprawdź logi po więcej informacji!" +msgstr "" +"Nie można zapisać hasła. Upewnij się że narzędzie zarządzające kluczami jest " +"odblokowane." #. translators: This is a sidebar entry to browse to saved albums. #: src/app/components/navigation/home.rs:36 @@ -88,12 +96,27 @@ msgstr "Biblioteka" msgid "Playlists" msgstr "Playlisty" +#. translators: This is a sidebar entry to browse to saved tracks. +#. This is the visible name for the list of liked songs. It appears in the sidebar as well. +#: src/app/components/navigation/home.rs:48 +#: src/app/components/saved_tracks/saved_tracks.ui:14 +msgid "Saved tracks" +msgstr "Zachowane piosenki" + #. This is the visible name for the play queue. It appears in the sidebar as well. -#: src/app/components/navigation/home.rs:52 +#: src/app/components/navigation/home.rs:53 #: src/app/components/now_playing/now_playing.ui:14 msgid "Now playing" msgstr "Aktualnie odtwarzane" +#: src/app/components/playback/playback_controls.rs:64 +msgid "Pause" +msgstr "" + +#: src/app/components/playback/playback_controls.rs:66 +msgid "Play" +msgstr "" + #. translators: Short text displayed instead of a song title when nothing plays #. Short text displayed instead of a song title when nothing plays #: src/app/components/playback/playback_info.rs:58 @@ -118,7 +141,6 @@ msgid_plural "songs selected" msgstr[0] "wybrana piosenka" msgstr[1] "wybrane piosenki" msgstr[2] "wybranych piosenek" -msgstr[3] "" #. translators: This is a menu entry. #: src/app/components/user_menu/user_menu.rs:56 @@ -139,6 +161,16 @@ msgstr "Wyloguj się" msgid "Connection restored" msgstr "Odzyskano połączenie" +#. A title that is shown when the user has not saved any playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:26 +msgid "You have no saved playlists." +msgstr "Nie masz zapisanych playlist." + +#. A description of what happens when the user has saved playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:27 +msgid "Your playlists will be shown here." +msgstr "Twoje playlisty będą tu pokazane." + #. Title of the section that shows 5 of the top tracks for an artist, as defined by Spotify. #: src/app/components/artist_details/artist_details.ui:40 msgid "Top tracks" @@ -149,6 +181,16 @@ msgstr "Najlepsze piosenki" msgid "Releases" msgstr "Premiery" +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:66 +msgid "Albums" +msgstr "Albumy" + +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:99 +msgid "Artists" +msgstr "Artyści" + #. Login window title -- shouldn't be too long, but must mention Premium (a premium account is required). #: src/app/components/login/login.ui:45 msgid "Login to Spotify Premium" @@ -164,51 +206,43 @@ msgstr "Nazwa użytkownika" msgid "Password" msgstr "Hasło" -#. This error is shown when authentication fails. +#. This information is shown when Caps Lock is enabled. #: src/app/components/login/login.ui:95 +msgid "Caps Lock is enabled!" +msgstr "Caps Lock jest włączony!" + +#. This error is shown when authentication fails. +#: src/app/components/login/login.ui:126 msgid "Authentication failed!" msgstr "Błąd autoryzacji!" #. Log in button label -#: src/app/components/login/login.ui:110 +#: src/app/components/login/login.ui:141 msgid "Log in" msgstr "Zaloguj" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:66 -msgid "Albums" -msgstr "Albumy" +#: src/app/components/playback/playback_controls.ui:17 +msgid "Shuffle" +msgstr "" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:99 -msgid "Artists" -msgstr "Artyści" +#: src/app/components/playback/playback_controls.ui:27 +msgid "Previous" +msgstr "" -#: src/app/components/navigation/home.rs:47 -msgid "Saved tracks" -msgstr "Zachowane piosenki" +#: src/app/components/playback/playback_controls.ui:50 +msgid "Next" +msgstr "" -#: -msgctxt "A title that is shown when the user has not saved any albums." +#: src/app/components/playback/playback_controls.ui:60 +msgid "Repeat" +msgstr "" + +#. A title that is shown when the user has not saved any albums. +#: src/app/components/library/library.ui:26 msgid "You have no saved albums." msgstr "Nie masz zapisanych albumów." -#: -msgctxt "A description of what happens when the user has saved albums." +#. A description of what happens when the user has saved albums. +#: src/app/components/library/library.ui:27 msgid "Your library will be shown here." msgstr "Twoja biblioteka będzie tu pokazana." - -#: -msgctxt "A title that is shown when the user has not saved any playlists." -msgid "You have no saved playlists." -msgstr "Nie masz zapisanych playlist." - -#: -msgctxt "A description of what happens when the user has saved playlists." -msgid "Your playlists will be shown here." -msgstr "Twoje playlisty będą tu pokazane." - -#: -msgid "Caps Lock is enabled!" -msgstr "" - diff --git a/po/pt-br.po b/po/pt-br.po index 92286de5..d106d187 100644 --- a/po/pt-br.po +++ b/po/pt-br.po @@ -1,13 +1,20 @@ msgid "" msgstr "" +"Project-Id-Version: Spot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-17 08:20-0500\n" +"Language: pt-br\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" -"Project-Id-Version: Spot\n" -"Language: pt-br\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#. translators: This notification is the default message for unhandled errors. Logs refer to console output. +#: src/app/batch_loader.rs:91 src/app/components/mod.rs:108 +msgid "An error occured. Check logs for details!" +msgstr "Ocorreu um erro. Verifique os logs para mais detalhes!" + #. translators: This is part of a larger label that reads " by " #: src/app/components/details/release_details.rs:101 msgid "by" @@ -71,14 +78,11 @@ msgid "Add to {}" msgstr "Adicionar a {}" #. translators: This notification shows up right after login if the password could not be stored in the keyring (that is, GNOME's keyring aka seahorse, or any other libsecret compliant secret store). -#: src/app/components/login/login_model.rs:52 +#: src/app/components/login/login_model.rs:56 msgid "Could not save password. Make sure the session keyring is unlocked." -msgstr "Não foi possível salvar a senha. Verifique se o seu chaveiro de sessão está desbloqueado." - -#. translators: This notification is the default message for unhandled errors. Logs refer to console output. -#: src/app/components/mod.rs:108 -msgid "An error occured. Check logs for details!" -msgstr "Ocorreu um erro. Verifique os logs para mais detalhes!" +msgstr "" +"Não foi possível salvar a senha. Verifique se o seu chaveiro de sessão está " +"desbloqueado." #. translators: This is a sidebar entry to browse to saved albums. #: src/app/components/navigation/home.rs:36 @@ -90,12 +94,27 @@ msgstr "Biblioteca" msgid "Playlists" msgstr "Listas de reprodução" +#. translators: This is a sidebar entry to browse to saved tracks. +#. This is the visible name for the list of liked songs. It appears in the sidebar as well. +#: src/app/components/navigation/home.rs:48 +#: src/app/components/saved_tracks/saved_tracks.ui:14 +msgid "Saved tracks" +msgstr "" + #. This is the visible name for the play queue. It appears in the sidebar as well. -#: src/app/components/navigation/home.rs:52 +#: src/app/components/navigation/home.rs:53 #: src/app/components/now_playing/now_playing.ui:14 msgid "Now playing" msgstr "Tocando agora" +#: src/app/components/playback/playback_controls.rs:64 +msgid "Pause" +msgstr "" + +#: src/app/components/playback/playback_controls.rs:66 +msgid "Play" +msgstr "" + #. translators: Short text displayed instead of a song title when nothing plays #. Short text displayed instead of a song title when nothing plays #: src/app/components/playback/playback_info.rs:58 @@ -139,6 +158,16 @@ msgstr "Sair" msgid "Connection restored" msgstr "Conexão reestabelecida" +#. A title that is shown when the user has not saved any playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:26 +msgid "You have no saved playlists." +msgstr "" + +#. A description of what happens when the user has saved playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:27 +msgid "Your playlists will be shown here." +msgstr "" + #. Title of the section that shows 5 of the top tracks for an artist, as defined by Spotify. #: src/app/components/artist_details/artist_details.ui:40 msgid "Top tracks" @@ -149,6 +178,16 @@ msgstr "Melhores faixas" msgid "Releases" msgstr "Lançamentos" +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:66 +msgid "Albums" +msgstr "Álbuns" + +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:99 +msgid "Artists" +msgstr "Artistas" + #. Login window title -- shouldn't be too long, but must mention Premium (a premium account is required). #: src/app/components/login/login.ui:45 msgid "Login to Spotify Premium" @@ -164,51 +203,43 @@ msgstr "Nome de usuário" msgid "Password" msgstr "Senha" -#. This error is shown when authentication fails. +#. This information is shown when Caps Lock is enabled. #: src/app/components/login/login.ui:95 +msgid "Caps Lock is enabled!" +msgstr "" + +#. This error is shown when authentication fails. +#: src/app/components/login/login.ui:126 msgid "Authentication failed!" msgstr "A autenticação falhou!" #. Log in button label -#: src/app/components/login/login.ui:110 +#: src/app/components/login/login.ui:141 msgid "Log in" msgstr "Entrar" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:66 -msgid "Albums" -msgstr "Álbuns" - -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:99 -msgid "Artists" -msgstr "Artistas" - -#: src/app/components/navigation/home.rs:47 -msgid "Saved tracks" +#: src/app/components/playback/playback_controls.ui:17 +msgid "Shuffle" msgstr "" -#: -msgctxt "A title that is shown when the user has not saved any albums." -msgid "You have no saved albums." +#: src/app/components/playback/playback_controls.ui:27 +msgid "Previous" msgstr "" -#: -msgctxt "A description of what happens when the user has saved albums." -msgid "Your library will be shown here." +#: src/app/components/playback/playback_controls.ui:50 +msgid "Next" msgstr "" -#: -msgctxt "A title that is shown when the user has not saved any playlists." -msgid "You have no saved playlists." +#: src/app/components/playback/playback_controls.ui:60 +msgid "Repeat" msgstr "" -#: -msgctxt "A description of what happens when the user has saved playlists." -msgid "Your playlists will be shown here." +#. A title that is shown when the user has not saved any albums. +#: src/app/components/library/library.ui:26 +msgid "You have no saved albums." msgstr "" -#: -msgid "Caps Lock is enabled!" +#. A description of what happens when the user has saved albums. +#: src/app/components/library/library.ui:27 +msgid "Your library will be shown here." msgstr "" - diff --git a/po/pt.po b/po/pt.po index 0182da3b..2c44aa6e 100644 --- a/po/pt.po +++ b/po/pt.po @@ -1,12 +1,22 @@ msgid "" msgstr "" +"Project-Id-Version: Spot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-17 08:20-0500\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: POEditor.com\n" -"Project-Id-Version: Spot\n" -"Language: pt\n" +"X-Generator: Poedit 3.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" + +#. translators: This notification is the default message for unhandled errors. Logs refer to console output. +#: src/app/batch_loader.rs:91 src/app/components/mod.rs:108 +msgid "An error occured. Check logs for details!" +msgstr "Ocorreu um erro! Verifique os logs para mais detalhes!" #. translators: This is part of a larger label that reads " by " #: src/app/components/details/release_details.rs:101 @@ -20,13 +30,11 @@ msgstr "Editora:" #. translators: This refers to a release date #: src/app/components/details/release_details.rs:115 -#, fuzzy msgid "Released:" msgstr "Lançamento:" #. translators: This refers to a number of tracks #: src/app/components/details/release_details.rs:122 -#, fuzzy msgid "Tracks:" msgstr "Faixas:" @@ -71,14 +79,11 @@ msgid "Add to {}" msgstr "Adicionar a {}" #. translators: This notification shows up right after login if the password could not be stored in the keyring (that is, GNOME's keyring aka seahorse, or any other libsecret compliant secret store). -#: src/app/components/login/login_model.rs:52 +#: src/app/components/login/login_model.rs:56 msgid "Could not save password. Make sure the session keyring is unlocked." -msgstr "Não foi possível guardar a palavra-passe. Garanta que o chaveiro da sessão está desbloqueado." - -#. translators: This notification is the default message for unhandled errors. Logs refer to console output. -#: src/app/components/mod.rs:108 -msgid "An error occured. Check logs for details!" -msgstr "Ocorreu um erro! Verifique os logs para mais detalhes!" +msgstr "" +"Não foi possível guardar a palavra-passe. Garanta que o chaveiro da sessão " +"está desbloqueado." #. translators: This is a sidebar entry to browse to saved albums. #: src/app/components/navigation/home.rs:36 @@ -90,12 +95,27 @@ msgstr "Biblioteca" msgid "Playlists" msgstr "Listas de reprodução" +#. translators: This is a sidebar entry to browse to saved tracks. +#. This is the visible name for the list of liked songs. It appears in the sidebar as well. +#: src/app/components/navigation/home.rs:48 +#: src/app/components/saved_tracks/saved_tracks.ui:14 +msgid "Saved tracks" +msgstr "" + #. This is the visible name for the play queue. It appears in the sidebar as well. -#: src/app/components/navigation/home.rs:52 +#: src/app/components/navigation/home.rs:53 #: src/app/components/now_playing/now_playing.ui:14 msgid "Now playing" msgstr "A reproduzir" +#: src/app/components/playback/playback_controls.rs:64 +msgid "Pause" +msgstr "" + +#: src/app/components/playback/playback_controls.rs:66 +msgid "Play" +msgstr "" + #. translators: Short text displayed instead of a song title when nothing plays #. Short text displayed instead of a song title when nothing plays #: src/app/components/playback/playback_info.rs:58 @@ -139,6 +159,16 @@ msgstr "Terminar sessão" msgid "Connection restored" msgstr "Conexão restaurada" +#. A title that is shown when the user has not saved any playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:26 +msgid "You have no saved playlists." +msgstr "" + +#. A description of what happens when the user has saved playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:27 +msgid "Your playlists will be shown here." +msgstr "" + #. Title of the section that shows 5 of the top tracks for an artist, as defined by Spotify. #: src/app/components/artist_details/artist_details.ui:40 msgid "Top tracks" @@ -149,6 +179,16 @@ msgstr "Melhores faixas" msgid "Releases" msgstr "Lançamentos" +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:66 +msgid "Albums" +msgstr "Álbums" + +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:99 +msgid "Artists" +msgstr "Artistas" + #. Login window title -- shouldn't be too long, but must mention Premium (a premium account is required). #: src/app/components/login/login.ui:45 msgid "Login to Spotify Premium" @@ -164,51 +204,43 @@ msgstr "Utilizador" msgid "Password" msgstr "Palavra-passe" -#. This error is shown when authentication fails. +#. This information is shown when Caps Lock is enabled. #: src/app/components/login/login.ui:95 +msgid "Caps Lock is enabled!" +msgstr "" + +#. This error is shown when authentication fails. +#: src/app/components/login/login.ui:126 msgid "Authentication failed!" msgstr "Autenticação falhou!" #. Log in button label -#: src/app/components/login/login.ui:110 +#: src/app/components/login/login.ui:141 msgid "Log in" msgstr "Autenticar" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:66 -msgid "Albums" -msgstr "Álbums" - -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:99 -msgid "Artists" -msgstr "Artistas" - -#: src/app/components/navigation/home.rs:47 -msgid "Saved tracks" +#: src/app/components/playback/playback_controls.ui:17 +msgid "Shuffle" msgstr "" -#: -msgctxt "A title that is shown when the user has not saved any albums." -msgid "You have no saved albums." +#: src/app/components/playback/playback_controls.ui:27 +msgid "Previous" msgstr "" -#: -msgctxt "A description of what happens when the user has saved albums." -msgid "Your library will be shown here." +#: src/app/components/playback/playback_controls.ui:50 +msgid "Next" msgstr "" -#: -msgctxt "A title that is shown when the user has not saved any playlists." -msgid "You have no saved playlists." +#: src/app/components/playback/playback_controls.ui:60 +msgid "Repeat" msgstr "" -#: -msgctxt "A description of what happens when the user has saved playlists." -msgid "Your playlists will be shown here." +#. A title that is shown when the user has not saved any albums. +#: src/app/components/library/library.ui:26 +msgid "You have no saved albums." msgstr "" -#: -msgid "Caps Lock is enabled!" +#. A description of what happens when the user has saved albums. +#: src/app/components/library/library.ui:27 +msgid "Your library will be shown here." msgstr "" - diff --git a/po/ru.po b/po/ru.po index 8c9d5f8c..9b2a88c1 100644 --- a/po/ru.po +++ b/po/ru.po @@ -1,12 +1,20 @@ msgid "" msgstr "" +"Project-Id-Version: Spot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-17 08:20-0500\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" -"Project-Id-Version: Spot\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. translators: This notification is the default message for unhandled errors. Logs refer to console output. +#: src/app/batch_loader.rs:91 src/app/components/mod.rs:108 +msgid "An error occured. Check logs for details!" +msgstr "Ошибка появилась. Посмотрите в логи за подробностями!" #. translators: This is part of a larger label that reads " by " #: src/app/components/details/release_details.rs:101 @@ -71,14 +79,10 @@ msgid "Add to {}" msgstr "" #. translators: This notification shows up right after login if the password could not be stored in the keyring (that is, GNOME's keyring aka seahorse, or any other libsecret compliant secret store). -#: src/app/components/login/login_model.rs:52 +#: src/app/components/login/login_model.rs:56 msgid "Could not save password. Make sure the session keyring is unlocked." -msgstr "Не удалось сохранить пароль. Проверьте, GNOME Keyring/KDE wallet открыта." - -#. translators: This notification is the default message for unhandled errors. Logs refer to console output. -#: src/app/components/mod.rs:108 -msgid "An error occured. Check logs for details!" -msgstr "Ошибка появилась. Посмотрите в логи за подробностями!" +msgstr "" +"Не удалось сохранить пароль. Проверьте, GNOME Keyring/KDE wallet открыта." #. translators: This is a sidebar entry to browse to saved albums. #: src/app/components/navigation/home.rs:36 @@ -90,12 +94,27 @@ msgstr "Библиотека" msgid "Playlists" msgstr "Плейлисты" +#. translators: This is a sidebar entry to browse to saved tracks. +#. This is the visible name for the list of liked songs. It appears in the sidebar as well. +#: src/app/components/navigation/home.rs:48 +#: src/app/components/saved_tracks/saved_tracks.ui:14 +msgid "Saved tracks" +msgstr "" + #. This is the visible name for the play queue. It appears in the sidebar as well. -#: src/app/components/navigation/home.rs:52 +#: src/app/components/navigation/home.rs:53 #: src/app/components/now_playing/now_playing.ui:14 msgid "Now playing" msgstr "Сейчас играет" +#: src/app/components/playback/playback_controls.rs:64 +msgid "Pause" +msgstr "" + +#: src/app/components/playback/playback_controls.rs:66 +msgid "Play" +msgstr "" + #. translators: Short text displayed instead of a song title when nothing plays #. Short text displayed instead of a song title when nothing plays #: src/app/components/playback/playback_info.rs:58 @@ -141,6 +160,16 @@ msgstr "Выйти из аккаунта" msgid "Connection restored" msgstr "Подключение восстановлено" +#. A title that is shown when the user has not saved any playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:26 +msgid "You have no saved playlists." +msgstr "" + +#. A description of what happens when the user has saved playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:27 +msgid "Your playlists will be shown here." +msgstr "" + #. Title of the section that shows 5 of the top tracks for an artist, as defined by Spotify. #: src/app/components/artist_details/artist_details.ui:40 msgid "Top tracks" @@ -151,6 +180,16 @@ msgstr "Топ треков" msgid "Releases" msgstr "Релизы" +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:66 +msgid "Albums" +msgstr "Альбомы" + +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:99 +msgid "Artists" +msgstr "Артисты" + #. Login window title -- shouldn't be too long, but must mention Premium (a premium account is required). #: src/app/components/login/login.ui:45 msgid "Login to Spotify Premium" @@ -166,51 +205,43 @@ msgstr "Имя аккаунта" msgid "Password" msgstr "Пароль" -#. This error is shown when authentication fails. +#. This information is shown when Caps Lock is enabled. #: src/app/components/login/login.ui:95 +msgid "Caps Lock is enabled!" +msgstr "" + +#. This error is shown when authentication fails. +#: src/app/components/login/login.ui:126 msgid "Authentication failed!" msgstr "Вход не удался!" #. Log in button label -#: src/app/components/login/login.ui:110 +#: src/app/components/login/login.ui:141 msgid "Log in" msgstr "Войти" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:66 -msgid "Albums" -msgstr "Альбомы" - -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:99 -msgid "Artists" -msgstr "Артисты" - -#: src/app/components/navigation/home.rs:47 -msgid "Saved tracks" +#: src/app/components/playback/playback_controls.ui:17 +msgid "Shuffle" msgstr "" -#: -msgctxt "A title that is shown when the user has not saved any albums." -msgid "You have no saved albums." +#: src/app/components/playback/playback_controls.ui:27 +msgid "Previous" msgstr "" -#: -msgctxt "A description of what happens when the user has saved albums." -msgid "Your library will be shown here." +#: src/app/components/playback/playback_controls.ui:50 +msgid "Next" msgstr "" -#: -msgctxt "A title that is shown when the user has not saved any playlists." -msgid "You have no saved playlists." +#: src/app/components/playback/playback_controls.ui:60 +msgid "Repeat" msgstr "" -#: -msgctxt "A description of what happens when the user has saved playlists." -msgid "Your playlists will be shown here." +#. A title that is shown when the user has not saved any albums. +#: src/app/components/library/library.ui:26 +msgid "You have no saved albums." msgstr "" -#: -msgid "Caps Lock is enabled!" +#. A description of what happens when the user has saved albums. +#: src/app/components/library/library.ui:27 +msgid "Your library will be shown here." msgstr "" - diff --git a/po/spot.pot b/po/spot.pot index 2ceaa875..6c4d56dc 100644 --- a/po/spot.pot +++ b/po/spot.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: spot\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-27 13:19-0400\n" +"POT-Creation-Date: 2021-11-17 08:20-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -162,20 +162,14 @@ msgstr "" msgid "Connection restored" msgstr "" -#: src/app/components/playback/playback_controls.ui:17 -msgid "Shuffle" -msgstr "" - -#: src/app/components/playback/playback_controls.ui:27 -msgid "Previous" -msgstr "" - -#: src/app/components/playback/playback_controls.ui:50 -msgid "Next" +#. A title that is shown when the user has not saved any playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:26 +msgid "You have no saved playlists." msgstr "" -#: src/app/components/playback/playback_controls.ui:60 -msgid "Repeat" +#. A description of what happens when the user has saved playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:27 +msgid "Your playlists will be shown here." msgstr "" #. Title of the section that shows 5 of the top tracks for an artist, as defined by Spotify. @@ -188,6 +182,16 @@ msgstr "" msgid "Releases" msgstr "" +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:66 +msgid "Albums" +msgstr "" + +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:99 +msgid "Artists" +msgstr "" + #. Login window title -- shouldn't be too long, but must mention Premium (a premium account is required). #: src/app/components/login/login.ui:45 msgid "Login to Spotify Premium" @@ -218,14 +222,20 @@ msgstr "" msgid "Log in" msgstr "" -#. A title that is shown when the user has not saved any playlists. -#: src/app/components/saved_playlists/saved_playlists.ui:26 -msgid "You have no saved playlists." +#: src/app/components/playback/playback_controls.ui:17 +msgid "Shuffle" msgstr "" -#. A description of what happens when the user has saved playlists. -#: src/app/components/saved_playlists/saved_playlists.ui:27 -msgid "Your playlists will be shown here." +#: src/app/components/playback/playback_controls.ui:27 +msgid "Previous" +msgstr "" + +#: src/app/components/playback/playback_controls.ui:50 +msgid "Next" +msgstr "" + +#: src/app/components/playback/playback_controls.ui:60 +msgid "Repeat" msgstr "" #. A title that is shown when the user has not saved any albums. @@ -237,13 +247,3 @@ msgstr "" #: src/app/components/library/library.ui:27 msgid "Your library will be shown here." msgstr "" - -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:66 -msgid "Albums" -msgstr "" - -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:99 -msgid "Artists" -msgstr "" diff --git a/po/tr.po b/po/tr.po index 09867e70..23947e02 100644 --- a/po/tr.po +++ b/po/tr.po @@ -1,13 +1,20 @@ msgid "" msgstr "" +"Project-Id-Version: Spot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-17 08:20-0500\n" +"Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" -"Project-Id-Version: Spot\n" -"Language: tr\n" "Plural-Forms: nplurals=2; plural=(n>1);\n" +#. translators: This notification is the default message for unhandled errors. Logs refer to console output. +#: src/app/batch_loader.rs:91 src/app/components/mod.rs:108 +msgid "An error occured. Check logs for details!" +msgstr "Bir hata meydana geldi. Günlükleri kontrol edin." + #. translators: This is part of a larger label that reads " by " #: src/app/components/details/release_details.rs:101 msgid "by" @@ -71,14 +78,11 @@ msgid "Add to {}" msgstr "{} listesine ekle" #. translators: This notification shows up right after login if the password could not be stored in the keyring (that is, GNOME's keyring aka seahorse, or any other libsecret compliant secret store). -#: src/app/components/login/login_model.rs:52 +#: src/app/components/login/login_model.rs:56 msgid "Could not save password. Make sure the session keyring is unlocked." -msgstr "Şifreniz kaydedilemedi. Oturum anahtarlığınızın kilidinin açık olduğundan emin olun." - -#. translators: This notification is the default message for unhandled errors. Logs refer to console output. -#: src/app/components/mod.rs:108 -msgid "An error occured. Check logs for details!" -msgstr "Bir hata meydana geldi. Günlükleri kontrol edin." +msgstr "" +"Şifreniz kaydedilemedi. Oturum anahtarlığınızın kilidinin açık olduğundan " +"emin olun." #. translators: This is a sidebar entry to browse to saved albums. #: src/app/components/navigation/home.rs:36 @@ -90,12 +94,27 @@ msgstr "Kütüphane" msgid "Playlists" msgstr "Oynatma listesi" +#. translators: This is a sidebar entry to browse to saved tracks. +#. This is the visible name for the list of liked songs. It appears in the sidebar as well. +#: src/app/components/navigation/home.rs:48 +#: src/app/components/saved_tracks/saved_tracks.ui:14 +msgid "Saved tracks" +msgstr "" + #. This is the visible name for the play queue. It appears in the sidebar as well. -#: src/app/components/navigation/home.rs:52 +#: src/app/components/navigation/home.rs:53 #: src/app/components/now_playing/now_playing.ui:14 msgid "Now playing" msgstr "Şu an oynatılıyor" +#: src/app/components/playback/playback_controls.rs:64 +msgid "Pause" +msgstr "" + +#: src/app/components/playback/playback_controls.rs:66 +msgid "Play" +msgstr "" + #. translators: Short text displayed instead of a song title when nothing plays #. Short text displayed instead of a song title when nothing plays #: src/app/components/playback/playback_info.rs:58 @@ -139,6 +158,16 @@ msgstr "Oturumdan çık" msgid "Connection restored" msgstr "Bağlantı geri yüklendi." +#. A title that is shown when the user has not saved any playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:26 +msgid "You have no saved playlists." +msgstr "" + +#. A description of what happens when the user has saved playlists. +#: src/app/components/saved_playlists/saved_playlists.ui:27 +msgid "Your playlists will be shown here." +msgstr "" + #. Title of the section that shows 5 of the top tracks for an artist, as defined by Spotify. #: src/app/components/artist_details/artist_details.ui:40 msgid "Top tracks" @@ -149,6 +178,16 @@ msgstr "En çok dinlenenler" msgid "Releases" msgstr "Parçalar" +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:66 +msgid "Albums" +msgstr "Albümler" + +#. This is the title of a section of the search results +#: src/app/components/search/search.ui:99 +msgid "Artists" +msgstr "Sanatçılar" + #. Login window title -- shouldn't be too long, but must mention Premium (a premium account is required). #: src/app/components/login/login.ui:45 msgid "Login to Spotify Premium" @@ -164,51 +203,43 @@ msgstr "Kullanıcı adı" msgid "Password" msgstr "Şifre" -#. This error is shown when authentication fails. +#. This information is shown when Caps Lock is enabled. #: src/app/components/login/login.ui:95 +msgid "Caps Lock is enabled!" +msgstr "" + +#. This error is shown when authentication fails. +#: src/app/components/login/login.ui:126 msgid "Authentication failed!" msgstr "Kimlik doğrulama başarısız." #. Log in button label -#: src/app/components/login/login.ui:110 +#: src/app/components/login/login.ui:141 msgid "Log in" msgstr "Giriş yap" -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:66 -msgid "Albums" -msgstr "Albümler" - -#. This is the title of a section of the search results -#: src/app/components/search/search.ui:99 -msgid "Artists" -msgstr "Sanatçılar" - -#: src/app/components/navigation/home.rs:47 -msgid "Saved tracks" +#: src/app/components/playback/playback_controls.ui:17 +msgid "Shuffle" msgstr "" -#: -msgctxt "A title that is shown when the user has not saved any albums." -msgid "You have no saved albums." +#: src/app/components/playback/playback_controls.ui:27 +msgid "Previous" msgstr "" -#: -msgctxt "A description of what happens when the user has saved albums." -msgid "Your library will be shown here." +#: src/app/components/playback/playback_controls.ui:50 +msgid "Next" msgstr "" -#: -msgctxt "A title that is shown when the user has not saved any playlists." -msgid "You have no saved playlists." +#: src/app/components/playback/playback_controls.ui:60 +msgid "Repeat" msgstr "" -#: -msgctxt "A description of what happens when the user has saved playlists." -msgid "Your playlists will be shown here." +#. A title that is shown when the user has not saved any albums. +#: src/app/components/library/library.ui:26 +msgid "You have no saved albums." msgstr "" -#: -msgid "Caps Lock is enabled!" +#. A description of what happens when the user has saved albums. +#: src/app/components/library/library.ui:27 +msgid "Your library will be shown here." msgstr "" - From 2752dfa330e7263ecf81ea94c47bf21896db9a19 Mon Sep 17 00:00:00 2001 From: Alexandre Trendel Date: Fri, 19 Nov 2021 18:36:32 +0000 Subject: [PATCH 09/44] 354 improve selection mode (#370) * redesign selection tools * wip: split headerbar * select all * hide seekbar * some fixes * more fixes --- .vscode/tasks.json | 1 + .../artist_details/artist_details.rs | 14 +- .../artist_details/artist_details.ui | 14 - .../artist_details/artist_details_model.rs | 70 ++--- src/app/components/details/details.rs | 8 +- src/app/components/details/details.ui | 2 +- src/app/components/details/details_model.rs | 67 ++--- src/app/components/headerbar/component.rs | 249 +++++++++++++++++ src/app/components/headerbar/headerbar.css | 5 + src/app/components/headerbar/headerbar.ui | 64 +++++ src/app/components/headerbar/mod.rs | 11 + src/app/components/headerbar/widget.rs | 157 +++++++++++ src/app/components/library/library.rs | 5 +- src/app/components/mod.rs | 9 + src/app/components/navigation/factory.rs | 108 +++++-- src/app/components/navigation/navigation.rs | 72 ++--- .../components/navigation/navigation_model.rs | 10 +- src/app/components/now_playing/now_playing.ui | 22 -- .../now_playing/now_playing_model.rs | 65 ++--- src/app/components/playback/component.rs | 5 +- .../components/playback/playback_widget.rs | 5 + .../playlist_details_model.rs | 120 +++----- .../components/saved_tracks/saved_tracks.ui | 22 -- .../saved_tracks/saved_tracks_model.rs | 48 +--- src/app/components/selection/component.rs | 177 ++++++++++++ .../selection/icons/music-queue-symbolic.svg | 8 + .../selection/icons/playlist2-symbolic.svg | 7 + src/app/components/selection/mod.rs | 14 +- .../components/selection/selection_heading.rs | 112 -------- .../selection/selection_toolbar.css | 3 + .../components/selection/selection_toolbar.ui | 69 +++++ .../components/selection/selection_tools.rs | 97 ------- .../components/selection/selection_widgets.rs | 264 ------------------ src/app/components/selection/widget.rs | 172 ++++++++++++ src/app/mod.rs | 32 +-- src/app/state/app_state.rs | 26 +- src/app/state/browser_state.rs | 14 +- src/app/state/selection_state.rs | 11 +- src/main.rs | 11 +- src/meson.build | 154 +++++----- src/spot.gresource.xml | 10 + src/window.ui.in | 169 ++++++----- 42 files changed, 1401 insertions(+), 1102 deletions(-) create mode 100644 src/app/components/headerbar/component.rs create mode 100644 src/app/components/headerbar/headerbar.css create mode 100644 src/app/components/headerbar/headerbar.ui create mode 100644 src/app/components/headerbar/mod.rs create mode 100644 src/app/components/headerbar/widget.rs create mode 100644 src/app/components/selection/component.rs create mode 100644 src/app/components/selection/icons/music-queue-symbolic.svg create mode 100644 src/app/components/selection/icons/playlist2-symbolic.svg delete mode 100644 src/app/components/selection/selection_heading.rs create mode 100644 src/app/components/selection/selection_toolbar.css create mode 100644 src/app/components/selection/selection_toolbar.ui delete mode 100644 src/app/components/selection/selection_tools.rs delete mode 100644 src/app/components/selection/selection_widgets.rs create mode 100644 src/app/components/selection/widget.rs diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 9cf844dd..93154afe 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -5,6 +5,7 @@ "options": { "env": { "RUST_BACKTRACE": "1", + "RUST_LOG": "info", //"https_proxy": "localhost:8080" } }, diff --git a/src/app/components/artist_details/artist_details.rs b/src/app/components/artist_details/artist_details.rs index 0c180848..0425621c 100644 --- a/src/app/components/artist_details/artist_details.rs +++ b/src/app/components/artist_details/artist_details.rs @@ -21,9 +21,6 @@ mod imp { #[template_child] pub scrolled_window: TemplateChild, - #[template_child] - pub artist_name: TemplateChild, - #[template_child] pub top_tracks: TemplateChild, @@ -69,10 +66,9 @@ impl ArtistDetailsWidget { self.widget().top_tracks.as_ref() } - fn set_artist_name(&self, name: &str) { + fn set_loaded(&self) { let context = self.style_context(); context.add_class("artist__loaded"); - self.widget().artist_name.set_text(name); } fn connect_bottom_edge(&self, f: F) @@ -153,12 +149,6 @@ impl ArtistDetails { children: vec![playlist], } } - - fn update_details(&mut self) { - if let Some(name) = self.model.get_artist_name() { - self.widget.set_artist_name(&name); - } - } } impl Component for ArtistDetails { @@ -177,7 +167,7 @@ impl EventListener for ArtistDetails { AppEvent::BrowserEvent(BrowserEvent::ArtistDetailsUpdated(id)) if id == &self.model.id => { - self.update_details(); + self.widget.set_loaded(); } _ => {} } diff --git a/src/app/components/artist_details/artist_details.ui b/src/app/components/artist_details/artist_details.ui index fa082a6a..a85c1985 100644 --- a/src/app/components/artist_details/artist_details.ui +++ b/src/app/components/artist_details/artist_details.ui @@ -15,20 +15,6 @@ 8 vertical 16 - - - start - 8 - 8 - Artist - 1 - 0 - - - vertical diff --git a/src/app/components/artist_details/artist_details_model.rs b/src/app/components/artist_details/artist_details_model.rs index 21a658bb..0d3fd049 100644 --- a/src/app/components/artist_details/artist_details_model.rs +++ b/src/app/components/artist_details/artist_details_model.rs @@ -2,12 +2,11 @@ use gio::prelude::*; use gio::SimpleActionGroup; use std::ops::Deref; use std::rc::Rc; -use std::sync::Arc; -use crate::api::SpotifyApiClient; -use crate::app::components::{labels, PlaylistModel, SelectionTool, SelectionToolsModel}; -use crate::app::components::{AddSelectionTool, SimpleSelectionTool}; +use crate::app::components::SimpleScreenModel; +use crate::app::components::{labels, PlaylistModel}; use crate::app::models::*; +use crate::app::state::SelectionContext; use crate::app::state::{ BrowserAction, BrowserEvent, PlaybackAction, SelectionAction, SelectionState, }; @@ -28,7 +27,7 @@ impl ArtistDetailsModel { } } - fn tracks_ref(&self) -> Option> + '_> { + fn songs_ref(&self) -> Option> + '_> { self.app_model .map_state_opt(|s| Some(&s.browser.artist_state(&self.id)?.top_tracks)) } @@ -88,7 +87,7 @@ impl PlaylistModel for ArtistDetailsModel { } fn play_song_at(&self, _pos: usize, id: &str) { - let tracks = self.tracks_ref(); + let tracks = self.songs_ref(); if let Some(tracks) = tracks { self.dispatcher .dispatch(PlaybackAction::LoadSongs(tracks.clone()).into()); @@ -102,7 +101,7 @@ impl PlaylistModel for ArtistDetailsModel { event, AppEvent::BrowserEvent(BrowserEvent::ArtistDetailsUpdated(id)) if id == &self.id ) { - let tracks = self.tracks_ref()?; + let tracks = self.songs_ref()?; Some(ListDiff::Set(tracks.iter().map(|s| s.into()).collect())) } else { None @@ -110,7 +109,7 @@ impl PlaylistModel for ArtistDetailsModel { } fn actions_for(&self, id: &str) -> Option { - let songs = self.tracks_ref()?; + let songs = self.songs_ref()?; let song = songs.iter().find(|&song| song.id == id)?; let group = SimpleActionGroup::new(); @@ -126,7 +125,7 @@ impl PlaylistModel for ArtistDetailsModel { } fn menu_for(&self, id: &str) -> Option { - let songs = self.tracks_ref()?; + let songs = self.songs_ref()?; let song = songs.iter().find(|&song| song.id == id)?; let menu = gio::Menu::new(); @@ -149,7 +148,7 @@ impl PlaylistModel for ArtistDetailsModel { fn select_song(&self, id: &str) { let song = self - .tracks_ref() + .songs_ref() .and_then(|songs| songs.iter().find(|&song| song.id == id).cloned()); if let Some(song) = song { self.dispatcher @@ -164,7 +163,7 @@ impl PlaylistModel for ArtistDetailsModel { fn enable_selection(&self) -> bool { self.dispatcher - .dispatch(AppAction::ChangeSelectionMode(true)); + .dispatch(AppAction::EnableSelection(SelectionContext::Default)); true } @@ -173,44 +172,27 @@ impl PlaylistModel for ArtistDetailsModel { } } -impl SelectionToolsModel for ArtistDetailsModel { - fn dispatcher(&self) -> Box { - self.dispatcher.box_clone() +impl SimpleScreenModel for ArtistDetailsModel { + fn title(&self) -> Option { + Some(self.get_artist_name()?.clone()) } - fn spotify_client(&self) -> Arc { - self.app_model.get_spotify() - } - - fn tools_visible(&self, _: &SelectionState) -> Vec { - let mut playlists: Vec = self - .app_model - .get_state() - .logged_user - .playlists - .iter() - .map(|p| SelectionTool::Add(AddSelectionTool::AddToPlaylist(p.clone()))) - .collect(); - let mut tools = vec![ - SelectionTool::Simple(SimpleSelectionTool::SelectAll), - SelectionTool::Add(AddSelectionTool::AddToQueue), - ]; - tools.append(&mut playlists); - tools + fn title_updated(&self, event: &AppEvent) -> bool { + matches!( + event, + AppEvent::BrowserEvent(BrowserEvent::ArtistDetailsUpdated(_)) + ) } - fn selection(&self) -> Option + '_>> { - Some(Box::new(self.app_model.map_state(|s| &s.selection))) + fn selection_context(&self) -> Option<&SelectionContext> { + Some(&SelectionContext::Default) } - fn handle_tool_activated(&self, selection: &SelectionState, tool: &SelectionTool) { - match tool { - SelectionTool::Simple(SimpleSelectionTool::SelectAll) => { - if let Some(songs) = self.tracks_ref() { - self.handle_select_all_tool(selection, &songs[..]); - } - } - _ => self.default_handle_tool_activated(selection, tool), - }; + fn select_all(&self) { + if let Some(songs) = self.songs_ref() { + let songs: Vec = songs.iter().cloned().collect(); + self.dispatcher + .dispatch(SelectionAction::Select(songs).into()); + } } } diff --git a/src/app/components/details/details.rs b/src/app/components/details/details.rs index 84a18b9f..2803b874 100644 --- a/src/app/components/details/details.rs +++ b/src/app/components/details/details.rs @@ -13,6 +13,8 @@ use crate::app::{AppEvent, BrowserEvent}; mod imp { + use libadwaita::subclass::prelude::BinImpl; + use super::*; #[derive(Debug, Default, CompositeTemplate)] @@ -50,7 +52,7 @@ mod imp { impl ObjectSubclass for AlbumDetailsWidget { const NAME: &'static str = "AlbumDetailsWidget"; type Type = super::AlbumDetailsWidget; - type ParentType = gtk::Box; + type ParentType = libadwaita::Bin; fn class_init(klass: &mut Self::Class) { Self::bind_template(klass); @@ -63,11 +65,11 @@ mod imp { impl ObjectImpl for AlbumDetailsWidget {} impl WidgetImpl for AlbumDetailsWidget {} - impl BoxImpl for AlbumDetailsWidget {} + impl BinImpl for AlbumDetailsWidget {} } glib::wrapper! { - pub struct AlbumDetailsWidget(ObjectSubclass) @extends gtk::Widget, gtk::Box; + pub struct AlbumDetailsWidget(ObjectSubclass) @extends gtk::Widget, libadwaita::Bin; } impl AlbumDetailsWidget { diff --git a/src/app/components/details/details.ui b/src/app/components/details/details.ui index eb31761b..d8bdb9bf 100644 --- a/src/app/components/details/details.ui +++ b/src/app/components/details/details.ui @@ -2,7 +2,7 @@ -