merged lyrics window into main cover

This commit is contained in:
Martin Wagner 2020-05-18 17:24:09 +02:00
parent ae4cede863
commit 8dbef31519
4 changed files with 211 additions and 191 deletions

View File

@ -1734,6 +1734,22 @@ class Browser(Gtk.Box):
self.main_cover.set_property("border-width", 3) self.main_cover.set_property("border-width", 3)
self.playlist_view=PlaylistView(self.client, self.settings) self.playlist_view=PlaylistView(self.client, self.settings)
#lyrics button
self.lyrics_button=Gtk.ToggleButton(image=Gtk.Image.new_from_icon_name("media-view-subtitles-symbolic", Gtk.IconSize.LARGE_TOOLBAR))
self.lyrics_button.set_tooltip_text(_("Show lyrics"))
self.lyrics_button.set_halign(2)
self.lyrics_button.set_valign(1)
style_context=self.lyrics_button.get_style_context()
provider=Gtk.CssProvider()
css=b"""* {opacity: 0.7;}"""
provider.load_from_data(css)
style_context.add_provider(provider, 800)
#lyrics cover overlay
self.overlay=Gtk.Overlay()
self.overlay.add(self.main_cover)
self.overlay.add_overlay(self.lyrics_button)
#connect #connect
self.back_to_album_button.connect("clicked", self.back_to_album) self.back_to_album_button.connect("clicked", self.back_to_album)
self.search_button.connect("toggled", self.on_search_toggled) self.search_button.connect("toggled", self.on_search_toggled)
@ -1741,6 +1757,7 @@ class Browser(Gtk.Box):
self.settings.connect("changed::playlist-right", self.on_playlist_pos_settings_changed) self.settings.connect("changed::playlist-right", self.on_playlist_pos_settings_changed)
self.client.emitter.connect("disconnected", self.on_disconnected) self.client.emitter.connect("disconnected", self.on_disconnected)
self.client.emitter.connect("reconnected", self.on_reconnected) self.client.emitter.connect("reconnected", self.on_reconnected)
self.lyrics_button.connect("toggled", self.on_lyrics_toggled)
#packing #packing
hbox=Gtk.Box(spacing=6) hbox=Gtk.Box(spacing=6)
@ -1759,9 +1776,10 @@ class Browser(Gtk.Box):
self.box1.pack_start(Gtk.Separator.new(orientation=Gtk.Orientation.HORIZONTAL), False, False, 0) self.box1.pack_start(Gtk.Separator.new(orientation=Gtk.Orientation.HORIZONTAL), False, False, 0)
self.box1.pack_start(self.artist_view, True, True, 0) self.box1.pack_start(self.artist_view, True, True, 0)
self.box2=Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.paned0=Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)
self.box2.pack_start(self.main_cover, False, False, 0) self.paned0.set_wide_handle(True)
self.box2.pack_start(self.playlist_view, True, True, 0) self.paned0.pack1(self.overlay, False, False)
self.paned0.pack2(self.playlist_view, True, False)
self.paned1=Gtk.Paned.new(Gtk.Orientation.HORIZONTAL) self.paned1=Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)
self.paned1.set_wide_handle(True) self.paned1.set_wide_handle(True)
@ -1773,7 +1791,7 @@ class Browser(Gtk.Box):
self.paned1.pack2(self.stack, True, False) self.paned1.pack2(self.stack, True, False)
self.paned2.pack1(self.paned1, True, False) self.paned2.pack1(self.paned1, True, False)
self.paned2.pack2(self.box2, False, False) self.paned2.pack2(self.paned0, False, False)
self.load_settings() self.load_settings()
self.pack_start(self.paned2, True, True, 0) self.pack_start(self.paned2, True, True, 0)
@ -1781,11 +1799,13 @@ class Browser(Gtk.Box):
self.on_playlist_pos_settings_changed() self.on_playlist_pos_settings_changed()
def save_settings(self): def save_settings(self):
self.settings.set_int("paned0", self.paned0.get_position())
self.settings.set_int("paned1", self.paned1.get_position()) self.settings.set_int("paned1", self.paned1.get_position())
self.settings.set_int("paned2", self.paned2.get_position()) self.settings.set_int("paned2", self.paned2.get_position())
self.playlist_view.save_settings() self.playlist_view.save_settings()
def load_settings(self): def load_settings(self):
self.paned0.set_position(self.settings.get_int("paned0"))
self.paned1.set_position(self.settings.get_int("paned1")) self.paned1.set_position(self.settings.get_int("paned1"))
self.paned2.set_position(self.settings.get_int("paned2")) self.paned2.set_position(self.settings.get_int("paned2"))
@ -1841,6 +1861,7 @@ class Browser(Gtk.Box):
def on_reconnected(self, *args): def on_reconnected(self, *args):
self.back_to_album_button.set_sensitive(True) self.back_to_album_button.set_sensitive(True)
self.search_button.set_sensitive(True) self.search_button.set_sensitive(True)
self.lyrics_button.set_sensitive(True)
self.genre_select.set_sensitive(True) self.genre_select.set_sensitive(True)
def on_disconnected(self, *args): def on_disconnected(self, *args):
@ -1848,6 +1869,8 @@ class Browser(Gtk.Box):
self.back_to_album_button.set_sensitive(False) self.back_to_album_button.set_sensitive(False)
self.search_button.set_active(False) self.search_button.set_active(False)
self.search_button.set_sensitive(False) self.search_button.set_sensitive(False)
self.lyrics_button.set_active(False)
self.lyrics_button.set_sensitive(False)
self.genre_select.set_sensitive(False) self.genre_select.set_sensitive(False)
def on_artists_changed(self, *args): def on_artists_changed(self, *args):
@ -1857,12 +1880,21 @@ class Browser(Gtk.Box):
def on_playlist_pos_settings_changed(self, *args): def on_playlist_pos_settings_changed(self, *args):
if self.settings.get_boolean("playlist-right"): if self.settings.get_boolean("playlist-right"):
self.box2.set_orientation(Gtk.Orientation.VERTICAL) self.paned0.set_orientation(Gtk.Orientation.VERTICAL)
self.paned2.set_orientation(Gtk.Orientation.HORIZONTAL) self.paned2.set_orientation(Gtk.Orientation.HORIZONTAL)
else: else:
self.box2.set_orientation(Gtk.Orientation.HORIZONTAL) self.paned0.set_orientation(Gtk.Orientation.HORIZONTAL)
self.paned2.set_orientation(Gtk.Orientation.VERTICAL) self.paned2.set_orientation(Gtk.Orientation.VERTICAL)
def on_lyrics_toggled(self, widget):
if widget.get_active():
size=self.settings.get_int("track-cover")
self.lyrics_win=LyricsWindow(self.client, self.settings, size, size)
self.overlay.add_overlay(self.lyrics_win)
self.overlay.reorder_overlay(self.lyrics_win, 0)
else:
self.lyrics_win.destroy()
class ProfileSettings(Gtk.Grid): class ProfileSettings(Gtk.Grid):
def __init__(self, parent, settings): def __init__(self, parent, settings):
Gtk.Grid.__init__(self) Gtk.Grid.__init__(self)
@ -2846,19 +2878,21 @@ class SearchWindow(FocusFrame):
self.songs_view.populate(self.client.search("any", self.search_entry.get_text())) self.songs_view.populate(self.client.search("any", self.search_entry.get_text()))
self.label.set_text(_("hits: %i") % (self.songs_view.count())) self.label.set_text(_("hits: %i") % (self.songs_view.count()))
class LyricsWindow(Gtk.Window): class LyricsWindow(Gtk.Frame):
def __init__(self, client, settings): def __init__(self, client, settings, width, height):
Gtk.Window.__init__(self, title=_("Lyrics")) Gtk.Frame.__init__(self)
self.set_icon_name("mpdevil")
self.set_default_size(450, 800) style_context=self.get_style_context()
provider=Gtk.CssProvider()
css=b"""* {border: 0px; background-color: @theme_base_color; opacity: 0.9;}"""
provider.load_from_data(css)
style_context.add_provider(provider, 800)
#adding vars #adding vars
self.settings=settings self.settings=settings
self.client=client self.client=client
#widgets #widgets
self.scroll=Gtk.ScrolledWindow()
self.scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
self.label=Gtk.Label() self.label=Gtk.Label()
self.label.set_selectable(True) self.label.set_selectable(True)
self.label.set_yalign(0) self.label.set_yalign(0)
@ -2869,7 +2903,10 @@ class LyricsWindow(Gtk.Window):
self.connect("destroy", self.remove_handlers) self.connect("destroy", self.remove_handlers)
#packing #packing
self.scroll=Gtk.ScrolledWindow()
self.scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
self.scroll.add(self.label) self.scroll.add(self.label)
self.scroll.set_margin_start(5)
self.add(self.scroll) self.add(self.scroll)
self.show_all() self.show_all()
@ -2884,7 +2921,7 @@ class LyricsWindow(Gtk.Window):
try: try:
text=self.getLyrics(current_song["artist"], current_song["title"]) text=self.getLyrics(current_song["artist"], current_song["title"])
except: except:
text=_("not found") text=_("lyrics not found")
GLib.idle_add(self.label.set_text, text) GLib.idle_add(self.label.set_text, text)
def refresh(self, *args): def refresh(self, *args):
@ -2961,8 +2998,6 @@ class MainWindow(Gtk.ApplicationWindow):
self.profiles.set_tooltip_text(_("Select profile")) self.profiles.set_tooltip_text(_("Select profile"))
self.control=ClientControl(self.client, self.settings) self.control=ClientControl(self.client, self.settings)
self.progress=SeekBar(self.client) self.progress=SeekBar(self.client)
self.lyrics_button=Gtk.ToggleButton(image=Gtk.Image.new_from_icon_name("media-view-subtitles-symbolic", self.icon_size))
self.lyrics_button.set_tooltip_text(_("Show lyrics"))
self.play_opts=PlaybackOptions(self.client, self.settings) self.play_opts=PlaybackOptions(self.client, self.settings)
#menu #menu
@ -2981,7 +3016,6 @@ class MainWindow(Gtk.ApplicationWindow):
menu_button.set_image(image=Gtk.Image.new_from_icon_name("open-menu-symbolic", self.icon_size)) menu_button.set_image(image=Gtk.Image.new_from_icon_name("open-menu-symbolic", self.icon_size))
#connect #connect
self.lyrics_button.connect("toggled", self.on_lyrics_toggled)
self.settings.connect("changed::profiles", self.on_settings_changed) self.settings.connect("changed::profiles", self.on_settings_changed)
self.client.emitter.connect("playing_file_changed", self.on_file_changed) self.client.emitter.connect("playing_file_changed", self.on_file_changed)
self.client.emitter.connect("disconnected", self.on_disconnected) self.client.emitter.connect("disconnected", self.on_disconnected)
@ -2999,7 +3033,6 @@ class MainWindow(Gtk.ApplicationWindow):
self.vbox.pack_start(self.action_bar, False, False, 0) self.vbox.pack_start(self.action_bar, False, False, 0)
self.action_bar.pack_start(self.control) self.action_bar.pack_start(self.control)
self.action_bar.pack_start(self.progress) self.action_bar.pack_start(self.progress)
self.action_bar.pack_start(self.lyrics_button)
self.action_bar.pack_start(self.profiles) self.action_bar.pack_start(self.profiles)
self.action_bar.pack_start(self.play_opts) self.action_bar.pack_start(self.play_opts)
self.action_bar.pack_end(menu_button) self.action_bar.pack_end(menu_button)
@ -3035,28 +3068,15 @@ class MainWindow(Gtk.ApplicationWindow):
self.progress.set_sensitive(True) self.progress.set_sensitive(True)
self.control.set_sensitive(True) self.control.set_sensitive(True)
self.play_opts.set_sensitive(True) self.play_opts.set_sensitive(True)
self.lyrics_button.set_sensitive(True)
self.browser.back_to_album() self.browser.back_to_album()
def on_disconnected(self, *args): def on_disconnected(self, *args):
self.dbus_service.release_name() self.dbus_service.release_name()
self.lyrics_button.set_active(False)
self.set_title("mpdevil (not connected)") self.set_title("mpdevil (not connected)")
self.songid_playing=None self.songid_playing=None
self.progress.set_sensitive(False) self.progress.set_sensitive(False)
self.control.set_sensitive(False) self.control.set_sensitive(False)
self.play_opts.set_sensitive(False) self.play_opts.set_sensitive(False)
self.lyrics_button.set_sensitive(False)
def on_lyrics_toggled(self, widget):
if widget.get_active():
if self.client.connected():
def set_active(*args):
self.lyrics_button.set_active(False)
self.lyrics_win=LyricsWindow(self.client, self.settings)
self.lyrics_win.connect("destroy", set_active)
else:
self.lyrics_win.destroy()
def on_key_press_event(self, widget, event): def on_key_press_event(self, widget, event):
if event.keyval == 32: #space if event.keyval == 32: #space

View File

@ -11,14 +11,19 @@
<summary>Default height of window</summary> <summary>Default height of window</summary>
<description></description> <description></description>
</key> </key>
<key type="i" name="paned0">
<default>350</default>
<summary>Default position of cover/playlist separator</summary>
<description></description>
</key>
<key type="i" name="paned1"> <key type="i" name="paned1">
<default>246</default> <default>246</default>
<summary>Default position of artist/album separator</summary> <summary>Default position of artist/albums separator</summary>
<description></description> <description></description>
</key> </key>
<key type="i" name="paned2"> <key type="i" name="paned2">
<default>598</default> <default>598</default>
<summary>Default position of browser/playlist separator</summary> <summary>Default position of paned1/paned0 separator</summary>
<description></description> <description></description>
</key> </key>
<key type="i" name="album-cover"> <key type="i" name="album-cover">

159
po/de.po
View File

@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-12 17:55+0200\n" "POT-Creation-Date: 2020-05-18 17:20+0200\n"
"PO-Revision-Date: 2020-05-12 17:56+0200\n" "PO-Revision-Date: 2020-05-18 17:21+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: de\n" "Language: de\n"
@ -18,231 +18,235 @@ msgstr ""
"X-Generator: Poedit 2.2.4\n" "X-Generator: Poedit 2.2.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: mpdevil.py:295 #: mpdevil.py:261
msgid "Unknown Title" msgid "Unknown Title"
msgstr "Unbekannter Titel" msgstr "Unbekannter Titel"
#: mpdevil.py:295 #: mpdevil.py:261
msgid "Unknown Artist" msgid "Unknown Artist"
msgstr "Unbekannter Interpret" msgstr "Unbekannter Interpret"
#: mpdevil.py:295 #: mpdevil.py:261
msgid "Unknown Album" msgid "Unknown Album"
msgstr "Unbekanntes Album" msgstr "Unbekanntes Album"
#: mpdevil.py:882 mpdevil.py:1499 mpdevil.py:2152 #: mpdevil.py:922 mpdevil.py:1537 mpdevil.py:2222
msgid "No" msgid "No"
msgstr "Nr." msgstr "Nr."
#: mpdevil.py:887 mpdevil.py:1505 mpdevil.py:2152 #: mpdevil.py:927 mpdevil.py:1543 mpdevil.py:2222
msgid "Title" msgid "Title"
msgstr "Titel" msgstr "Titel"
#: mpdevil.py:892 mpdevil.py:1108 mpdevil.py:1508 mpdevil.py:2152 #: mpdevil.py:932 mpdevil.py:1146 mpdevil.py:1546 mpdevil.py:2222
msgid "Artist" msgid "Artist"
msgstr "Interpret" msgstr "Interpret"
#: mpdevil.py:897 mpdevil.py:1511 mpdevil.py:2152 #: mpdevil.py:937 mpdevil.py:1549 mpdevil.py:2222
msgid "Album" msgid "Album"
msgstr "Album" msgstr "Album"
#: mpdevil.py:903 mpdevil.py:1514 mpdevil.py:2152 #: mpdevil.py:943 mpdevil.py:1552 mpdevil.py:2222
msgid "Length" msgid "Length"
msgstr "Länge" msgstr "Länge"
#: mpdevil.py:1022 #: mpdevil.py:1060
msgid "all genres" msgid "all genres"
msgstr "Alle Genres" msgstr "Alle Genres"
#: mpdevil.py:1106 #: mpdevil.py:1144
msgid "Album Artist" msgid "Album Artist"
msgstr "Albuminterpret" msgstr "Albuminterpret"
#: mpdevil.py:1109 #: mpdevil.py:1147
msgid "all artists" msgid "all artists"
msgstr "Alle Interpreten" msgstr "Alle Interpreten"
#: mpdevil.py:1252 #: mpdevil.py:1283
#, python-format #, python-format
msgid "%(total_tracks)i titles on %(discs)i discs (%(total_length)s)" msgid "%(total_tracks)i titles on %(discs)i discs (%(total_length)s)"
msgstr "%(total_tracks)i Titel auf %(discs)i CDs (%(total_length)s)" msgstr "%(total_tracks)i Titel auf %(discs)i CDs (%(total_length)s)"
#: mpdevil.py:1254 mpdevil.py:1604 #: mpdevil.py:1285 mpdevil.py:1635
#, python-format #, python-format
msgid "%(total_tracks)i titles (%(total_length)s)" msgid "%(total_tracks)i titles (%(total_length)s)"
msgstr "%(total_tracks)i Titel (%(total_length)s)" msgstr "%(total_tracks)i Titel (%(total_length)s)"
#: mpdevil.py:1502 mpdevil.py:2152 #: mpdevil.py:1540 mpdevil.py:2222
msgid "Disc" msgid "Disc"
msgstr "CD" msgstr "CD"
#: mpdevil.py:1517 mpdevil.py:2152 #: mpdevil.py:1555 mpdevil.py:2222
msgid "Year" msgid "Year"
msgstr "Jahr" msgstr "Jahr"
#: mpdevil.py:1520 mpdevil.py:2152 #: mpdevil.py:1558 mpdevil.py:2222
msgid "Genre" msgid "Genre"
msgstr "Genre" msgstr "Genre"
#: mpdevil.py:1697 #: mpdevil.py:1726
msgid "Back to current album" msgid "Back to current album"
msgstr "Zurück zu aktuellem Album" msgstr "Zurück zu aktuellem Album"
#: mpdevil.py:1699 mpdevil.py:2776 #: mpdevil.py:1728
msgid "Search" msgid "Search"
msgstr "Suche" msgstr "Suche"
#: mpdevil.py:1863 #: mpdevil.py:1739
msgid "Show lyrics"
msgstr "Zeige Liedtext"
#: mpdevil.py:1933
msgid "Profile:" msgid "Profile:"
msgstr "Profil:" msgstr "Profil:"
#: mpdevil.py:1865 #: mpdevil.py:1935
msgid "Name:" msgid "Name:"
msgstr "Name:" msgstr "Name:"
#: mpdevil.py:1867 #: mpdevil.py:1937
msgid "Host:" msgid "Host:"
msgstr "Host:" msgstr "Host:"
#: mpdevil.py:1869 #: mpdevil.py:1939
msgid "Password:" msgid "Password:"
msgstr "Passwort:" msgstr "Passwort:"
#: mpdevil.py:1871 #: mpdevil.py:1941
msgid "Music lib:" msgid "Music lib:"
msgstr "Musikverzeichnis:" msgstr "Musikverzeichnis:"
#: mpdevil.py:1958 #: mpdevil.py:2028
msgid "Choose directory" msgid "Choose directory"
msgstr "Verzeichnis Wählen" msgstr "Verzeichnis Wählen"
#: mpdevil.py:1996 #: mpdevil.py:2066
msgid "Main cover size:" msgid "Main cover size:"
msgstr "Größe des Haupt-Covers:" msgstr "Größe des Haupt-Covers:"
#: mpdevil.py:2000 #: mpdevil.py:2070
msgid "Album view cover size:" msgid "Album view cover size:"
msgstr "Covergröße in Albumliste:" msgstr "Covergröße in Albumliste:"
#: mpdevil.py:2004 #: mpdevil.py:2074
msgid "Button icon size:" msgid "Button icon size:"
msgstr "Symbolgröße der Knöpfe:" msgstr "Symbolgröße der Knöpfe:"
#: mpdevil.py:2006 #: mpdevil.py:2076
msgid "(restart required)" msgid "(restart required)"
msgstr "(Neustart erforderlich)" msgstr "(Neustart erforderlich)"
#: mpdevil.py:2017 #: mpdevil.py:2087
msgid "Sort albums by:" msgid "Sort albums by:"
msgstr "Sortiere Alben nach:" msgstr "Sortiere Alben nach:"
#: mpdevil.py:2017 #: mpdevil.py:2087
msgid "name" msgid "name"
msgstr "Name" msgstr "Name"
#: mpdevil.py:2017 #: mpdevil.py:2087
msgid "year" msgid "year"
msgstr "Jahr" msgstr "Jahr"
#: mpdevil.py:2018 #: mpdevil.py:2088
msgid "Position of playlist:" msgid "Position of playlist:"
msgstr "Wiedergabelistenposition:" msgstr "Wiedergabelistenposition:"
#: mpdevil.py:2018 #: mpdevil.py:2088
msgid "bottom" msgid "bottom"
msgstr "unten" msgstr "unten"
#: mpdevil.py:2018 #: mpdevil.py:2088
msgid "right" msgid "right"
msgstr "rechts" msgstr "rechts"
#: mpdevil.py:2034 #: mpdevil.py:2104
msgid "<b>View</b>" msgid "<b>View</b>"
msgstr "<b>Ansicht</b>" msgstr "<b>Ansicht</b>"
#: mpdevil.py:2037 #: mpdevil.py:2107
msgid "<b>Behavior</b>" msgid "<b>Behavior</b>"
msgstr "<b>Verhalten</b>" msgstr "<b>Verhalten</b>"
#: mpdevil.py:2042 #: mpdevil.py:2112
msgid "Show stop button" msgid "Show stop button"
msgstr "Zeige Stopp-Knopf" msgstr "Zeige Stopp-Knopf"
#: mpdevil.py:2043 #: mpdevil.py:2113
msgid "Show initials in artist view" msgid "Show initials in artist view"
msgstr "Zeige Anfangsbuchstaben in Interpretenliste" msgstr "Zeige Anfangsbuchstaben in Interpretenliste"
#: mpdevil.py:2044 #: mpdevil.py:2114
msgid "Show tooltips in album view" msgid "Show tooltips in album view"
msgstr "Zeige Tooltips in Albumliste" msgstr "Zeige Tooltips in Albumliste"
#: mpdevil.py:2045 #: mpdevil.py:2115
msgid "Use 'Album Artist' tag" msgid "Use 'Album Artist' tag"
msgstr "Benutze \"Album Artist\" Tag" msgstr "Benutze \"Album Artist\" Tag"
#: mpdevil.py:2046 #: mpdevil.py:2116
msgid "Send notification on title change" msgid "Send notification on title change"
msgstr "Sende Benachrichtigung bei Titelwechsel" msgstr "Sende Benachrichtigung bei Titelwechsel"
#: mpdevil.py:2047 #: mpdevil.py:2117
msgid "Stop playback on quit" msgid "Stop playback on quit"
msgstr "Wiedergabe beim Beenden stoppen" msgstr "Wiedergabe beim Beenden stoppen"
#: mpdevil.py:2048 #: mpdevil.py:2118
msgid "Play selected albums and titles immediately" msgid "Play selected albums and titles immediately"
msgstr "Ausgewählte Alben und Titel sofort abspielen" msgstr "Ausgewählte Alben und Titel sofort abspielen"
#: mpdevil.py:2124 #: mpdevil.py:2194
msgid "Choose the order of information to appear in the playlist:" msgid "Choose the order of information to appear in the playlist:"
msgstr "" msgstr ""
"Lege die Reihenfolge fest, in der Informationen in der Wiedergabeliste " "Lege die Reihenfolge fest, in der Informationen in der Wiedergabeliste "
"angezeigt werden sollen:" "angezeigt werden sollen:"
#: mpdevil.py:2237 mpdevil.py:2937 #: mpdevil.py:2307 mpdevil.py:3006
msgid "Settings" msgid "Settings"
msgstr "Einstellungen" msgstr "Einstellungen"
#: mpdevil.py:2251 #: mpdevil.py:2321
msgid "General" msgid "General"
msgstr "Allgemein" msgstr "Allgemein"
#: mpdevil.py:2252 #: mpdevil.py:2322
msgid "Profiles" msgid "Profiles"
msgstr "Profile" msgstr "Profile"
#: mpdevil.py:2253 #: mpdevil.py:2323
msgid "Playlist" msgid "Playlist"
msgstr "Wiedergabeliste" msgstr "Wiedergabeliste"
#: mpdevil.py:2524 #: mpdevil.py:2574
msgid "Random mode" msgid "Random mode"
msgstr "Zufallsmodus" msgstr "Zufallsmodus"
#: mpdevil.py:2526 #: mpdevil.py:2576
msgid "Repeat mode" msgid "Repeat mode"
msgstr "Dauerschleife" msgstr "Dauerschleife"
#: mpdevil.py:2528 #: mpdevil.py:2578
msgid "Single mode" msgid "Single mode"
msgstr "Einzelstückmodus" msgstr "Einzelstückmodus"
#: mpdevil.py:2530 #: mpdevil.py:2580
msgid "Consume mode" msgid "Consume mode"
msgstr "Wiedergabeliste verbrauchen" msgstr "Wiedergabeliste verbrauchen"
#: mpdevil.py:2620 #: mpdevil.py:2670
msgid "Show additional information" msgid "Show additional information"
msgstr "Zeige weitere Informationen" msgstr "Zeige weitere Informationen"
#: mpdevil.py:2646 #: mpdevil.py:2696
msgid "MPD-Tag" msgid "MPD-Tag"
msgstr "MPD-Tag" msgstr "MPD-Tag"
#: mpdevil.py:2650 #: mpdevil.py:2700
msgid "Value" msgid "Value"
msgstr "Wert" msgstr "Wert"
#: mpdevil.py:2672 #: mpdevil.py:2732
#, python-format #, python-format
msgid "" msgid ""
"%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)s bit, %(channels)s " "%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)s bit, %(channels)s "
@ -251,63 +255,58 @@ msgstr ""
"%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)s bit, %(channels)s " "%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)s bit, %(channels)s "
"Kanäle, %(file_type)s" "Kanäle, %(file_type)s"
#: mpdevil.py:2726 #: mpdevil.py:2786
msgid "Stats" msgid "Stats"
msgstr "Statistik" msgstr "Statistik"
#: mpdevil.py:2813 #: mpdevil.py:2879
#, python-format #, python-format
msgid "hits: %i" msgid "hits: %i"
msgstr "Treffer: %i" msgstr "Treffer: %i"
#: mpdevil.py:2817 #: mpdevil.py:2920
msgid "Lyrics"
msgstr "Liedtext"
#: mpdevil.py:2849
msgid "searching..." msgid "searching..."
msgstr "suche..." msgstr "suche..."
#: mpdevil.py:2853 #: mpdevil.py:2924
msgid "not found" msgid "lyrics not found"
msgstr "nicht gefunden" msgstr "Liedtext nicht gefunden"
#: mpdevil.py:2927 #: mpdevil.py:2998
msgid "Select profile" msgid "Select profile"
msgstr "Profil auswählen" msgstr "Profil auswählen"
#: mpdevil.py:2931 #: mpdevil.py:3005
msgid "Show lyrics"
msgstr "Zeige Liedtext"
#: mpdevil.py:2936
msgid "Save window layout" msgid "Save window layout"
msgstr "Fensterlayout speichern" msgstr "Fensterlayout speichern"
#: mpdevil.py:2938 #: mpdevil.py:3007
msgid "Update database" msgid "Update database"
msgstr "Datenbank aktualisieren" msgstr "Datenbank aktualisieren"
#: mpdevil.py:2939 #: mpdevil.py:3008
msgid "Server stats" msgid "Server stats"
msgstr "Serverstatistik" msgstr "Serverstatistik"
#: mpdevil.py:2940 #: mpdevil.py:3009
msgid "About" msgid "About"
msgstr "Über" msgstr "Über"
#: mpdevil.py:2941 #: mpdevil.py:3010
msgid "Quit" msgid "Quit"
msgstr "Beenden" msgstr "Beenden"
#: mpdevil.py:2946 #: mpdevil.py:3015
msgid "Menu" msgid "Menu"
msgstr "Menü" msgstr "Menü"
#: mpdevil.py:3103 #: mpdevil.py:3164
msgid "A small MPD client written in python" msgid "A small MPD client written in python"
msgstr "" msgstr ""
#~ msgid "Lyrics"
#~ msgstr "Liedtext"
#~ msgid "Tag" #~ msgid "Tag"
#~ msgstr "Tag" #~ msgstr "Tag"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-12 17:55+0200\n" "POT-Creation-Date: 2020-05-18 17:20+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,288 +17,284 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: mpdevil.py:295 #: mpdevil.py:261
msgid "Unknown Title" msgid "Unknown Title"
msgstr "" msgstr ""
#: mpdevil.py:295 #: mpdevil.py:261
msgid "Unknown Artist" msgid "Unknown Artist"
msgstr "" msgstr ""
#: mpdevil.py:295 #: mpdevil.py:261
msgid "Unknown Album" msgid "Unknown Album"
msgstr "" msgstr ""
#: mpdevil.py:882 mpdevil.py:1499 mpdevil.py:2152 #: mpdevil.py:922 mpdevil.py:1537 mpdevil.py:2222
msgid "No" msgid "No"
msgstr "" msgstr ""
#: mpdevil.py:887 mpdevil.py:1505 mpdevil.py:2152 #: mpdevil.py:927 mpdevil.py:1543 mpdevil.py:2222
msgid "Title" msgid "Title"
msgstr "" msgstr ""
#: mpdevil.py:892 mpdevil.py:1108 mpdevil.py:1508 mpdevil.py:2152 #: mpdevil.py:932 mpdevil.py:1146 mpdevil.py:1546 mpdevil.py:2222
msgid "Artist" msgid "Artist"
msgstr "" msgstr ""
#: mpdevil.py:897 mpdevil.py:1511 mpdevil.py:2152 #: mpdevil.py:937 mpdevil.py:1549 mpdevil.py:2222
msgid "Album" msgid "Album"
msgstr "" msgstr ""
#: mpdevil.py:903 mpdevil.py:1514 mpdevil.py:2152 #: mpdevil.py:943 mpdevil.py:1552 mpdevil.py:2222
msgid "Length" msgid "Length"
msgstr "" msgstr ""
#: mpdevil.py:1022 #: mpdevil.py:1060
msgid "all genres" msgid "all genres"
msgstr "" msgstr ""
#: mpdevil.py:1106 #: mpdevil.py:1144
msgid "Album Artist" msgid "Album Artist"
msgstr "" msgstr ""
#: mpdevil.py:1109 #: mpdevil.py:1147
msgid "all artists" msgid "all artists"
msgstr "" msgstr ""
#: mpdevil.py:1252 #: mpdevil.py:1283
#, python-format #, python-format
msgid "%(total_tracks)i titles on %(discs)i discs (%(total_length)s)" msgid "%(total_tracks)i titles on %(discs)i discs (%(total_length)s)"
msgstr "" msgstr ""
#: mpdevil.py:1254 mpdevil.py:1604 #: mpdevil.py:1285 mpdevil.py:1635
#, python-format #, python-format
msgid "%(total_tracks)i titles (%(total_length)s)" msgid "%(total_tracks)i titles (%(total_length)s)"
msgstr "" msgstr ""
#: mpdevil.py:1502 mpdevil.py:2152 #: mpdevil.py:1540 mpdevil.py:2222
msgid "Disc" msgid "Disc"
msgstr "" msgstr ""
#: mpdevil.py:1517 mpdevil.py:2152 #: mpdevil.py:1555 mpdevil.py:2222
msgid "Year" msgid "Year"
msgstr "" msgstr ""
#: mpdevil.py:1520 mpdevil.py:2152 #: mpdevil.py:1558 mpdevil.py:2222
msgid "Genre" msgid "Genre"
msgstr "" msgstr ""
#: mpdevil.py:1697 #: mpdevil.py:1726
msgid "Back to current album" msgid "Back to current album"
msgstr "" msgstr ""
#: mpdevil.py:1699 mpdevil.py:2776 #: mpdevil.py:1728
msgid "Search" msgid "Search"
msgstr "" msgstr ""
#: mpdevil.py:1863 #: mpdevil.py:1739
msgid "Show lyrics"
msgstr ""
#: mpdevil.py:1933
msgid "Profile:" msgid "Profile:"
msgstr "" msgstr ""
#: mpdevil.py:1865 #: mpdevil.py:1935
msgid "Name:" msgid "Name:"
msgstr "" msgstr ""
#: mpdevil.py:1867 #: mpdevil.py:1937
msgid "Host:" msgid "Host:"
msgstr "" msgstr ""
#: mpdevil.py:1869 #: mpdevil.py:1939
msgid "Password:" msgid "Password:"
msgstr "" msgstr ""
#: mpdevil.py:1871 #: mpdevil.py:1941
msgid "Music lib:" msgid "Music lib:"
msgstr "" msgstr ""
#: mpdevil.py:1958 #: mpdevil.py:2028
msgid "Choose directory" msgid "Choose directory"
msgstr "" msgstr ""
#: mpdevil.py:1996 #: mpdevil.py:2066
msgid "Main cover size:" msgid "Main cover size:"
msgstr "" msgstr ""
#: mpdevil.py:2000 #: mpdevil.py:2070
msgid "Album view cover size:" msgid "Album view cover size:"
msgstr "" msgstr ""
#: mpdevil.py:2004 #: mpdevil.py:2074
msgid "Button icon size:" msgid "Button icon size:"
msgstr "" msgstr ""
#: mpdevil.py:2006 #: mpdevil.py:2076
msgid "(restart required)" msgid "(restart required)"
msgstr "" msgstr ""
#: mpdevil.py:2017 #: mpdevil.py:2087
msgid "Sort albums by:" msgid "Sort albums by:"
msgstr "" msgstr ""
#: mpdevil.py:2017 #: mpdevil.py:2087
msgid "name" msgid "name"
msgstr "" msgstr ""
#: mpdevil.py:2017 #: mpdevil.py:2087
msgid "year" msgid "year"
msgstr "" msgstr ""
#: mpdevil.py:2018 #: mpdevil.py:2088
msgid "Position of playlist:" msgid "Position of playlist:"
msgstr "" msgstr ""
#: mpdevil.py:2018 #: mpdevil.py:2088
msgid "bottom" msgid "bottom"
msgstr "" msgstr ""
#: mpdevil.py:2018 #: mpdevil.py:2088
msgid "right" msgid "right"
msgstr "" msgstr ""
#: mpdevil.py:2034 #: mpdevil.py:2104
msgid "<b>View</b>" msgid "<b>View</b>"
msgstr "" msgstr ""
#: mpdevil.py:2037 #: mpdevil.py:2107
msgid "<b>Behavior</b>" msgid "<b>Behavior</b>"
msgstr "" msgstr ""
#: mpdevil.py:2042 #: mpdevil.py:2112
msgid "Show stop button" msgid "Show stop button"
msgstr "" msgstr ""
#: mpdevil.py:2043 #: mpdevil.py:2113
msgid "Show initials in artist view" msgid "Show initials in artist view"
msgstr "" msgstr ""
#: mpdevil.py:2044 #: mpdevil.py:2114
msgid "Show tooltips in album view" msgid "Show tooltips in album view"
msgstr "" msgstr ""
#: mpdevil.py:2045 #: mpdevil.py:2115
msgid "Use 'Album Artist' tag" msgid "Use 'Album Artist' tag"
msgstr "" msgstr ""
#: mpdevil.py:2046 #: mpdevil.py:2116
msgid "Send notification on title change" msgid "Send notification on title change"
msgstr "" msgstr ""
#: mpdevil.py:2047 #: mpdevil.py:2117
msgid "Stop playback on quit" msgid "Stop playback on quit"
msgstr "" msgstr ""
#: mpdevil.py:2048 #: mpdevil.py:2118
msgid "Play selected albums and titles immediately" msgid "Play selected albums and titles immediately"
msgstr "" msgstr ""
#: mpdevil.py:2124 #: mpdevil.py:2194
msgid "Choose the order of information to appear in the playlist:" msgid "Choose the order of information to appear in the playlist:"
msgstr "" msgstr ""
#: mpdevil.py:2237 mpdevil.py:2937 #: mpdevil.py:2307 mpdevil.py:3006
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#: mpdevil.py:2251 #: mpdevil.py:2321
msgid "General" msgid "General"
msgstr "" msgstr ""
#: mpdevil.py:2252 #: mpdevil.py:2322
msgid "Profiles" msgid "Profiles"
msgstr "" msgstr ""
#: mpdevil.py:2253 #: mpdevil.py:2323
msgid "Playlist" msgid "Playlist"
msgstr "" msgstr ""
#: mpdevil.py:2524 #: mpdevil.py:2574
msgid "Random mode" msgid "Random mode"
msgstr "" msgstr ""
#: mpdevil.py:2526 #: mpdevil.py:2576
msgid "Repeat mode" msgid "Repeat mode"
msgstr "" msgstr ""
#: mpdevil.py:2528 #: mpdevil.py:2578
msgid "Single mode" msgid "Single mode"
msgstr "" msgstr ""
#: mpdevil.py:2530 #: mpdevil.py:2580
msgid "Consume mode" msgid "Consume mode"
msgstr "" msgstr ""
#: mpdevil.py:2620 #: mpdevil.py:2670
msgid "Show additional information" msgid "Show additional information"
msgstr "" msgstr ""
#: mpdevil.py:2646 #: mpdevil.py:2696
msgid "MPD-Tag" msgid "MPD-Tag"
msgstr "" msgstr ""
#: mpdevil.py:2650 #: mpdevil.py:2700
msgid "Value" msgid "Value"
msgstr "" msgstr ""
#: mpdevil.py:2672 #: mpdevil.py:2732
#, python-format #, python-format
msgid "" msgid ""
"%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)s bit, %(channels)s " "%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)s bit, %(channels)s "
"channels, %(file_type)s" "channels, %(file_type)s"
msgstr "" msgstr ""
#: mpdevil.py:2726 #: mpdevil.py:2786
msgid "Stats" msgid "Stats"
msgstr "" msgstr ""
#: mpdevil.py:2813 #: mpdevil.py:2879
#, python-format #, python-format
msgid "hits: %i" msgid "hits: %i"
msgstr "" msgstr ""
#: mpdevil.py:2817 #: mpdevil.py:2920
msgid "Lyrics"
msgstr ""
#: mpdevil.py:2849
msgid "searching..." msgid "searching..."
msgstr "" msgstr ""
#: mpdevil.py:2853 #: mpdevil.py:2924
msgid "not found" msgid "lyrics not found"
msgstr "" msgstr ""
#: mpdevil.py:2927 #: mpdevil.py:2998
msgid "Select profile" msgid "Select profile"
msgstr "" msgstr ""
#: mpdevil.py:2931 #: mpdevil.py:3005
msgid "Show lyrics"
msgstr ""
#: mpdevil.py:2936
msgid "Save window layout" msgid "Save window layout"
msgstr "" msgstr ""
#: mpdevil.py:2938 #: mpdevil.py:3007
msgid "Update database" msgid "Update database"
msgstr "" msgstr ""
#: mpdevil.py:2939 #: mpdevil.py:3008
msgid "Server stats" msgid "Server stats"
msgstr "" msgstr ""
#: mpdevil.py:2940 #: mpdevil.py:3009
msgid "About" msgid "About"
msgstr "" msgstr ""
#: mpdevil.py:2941 #: mpdevil.py:3010
msgid "Quit" msgid "Quit"
msgstr "" msgstr ""
#: mpdevil.py:2946 #: mpdevil.py:3015
msgid "Menu" msgid "Menu"
msgstr "" msgstr ""
#: mpdevil.py:3103 #: mpdevil.py:3164
msgid "A small MPD client written in python" msgid "A small MPD client written in python"
msgstr "" msgstr ""