mirror of
https://github.com/SoongNoonien/mpdevil.git
synced 2023-08-10 21:12:44 +03:00
Layout improvements introducing optional CSD (disabled by default)
This commit is contained in:
parent
0df8f91279
commit
2090e33810
254
bin/mpdevil.py
254
bin/mpdevil.py
@ -1033,7 +1033,7 @@ class AlbumDialog(Gtk.Dialog):
|
||||
|
||||
#packing
|
||||
self.vbox.pack_start(scroll, True, True, 0) #vbox default widget of dialogs
|
||||
self.vbox.set_spacing(6)
|
||||
self.vbox.set_spacing(3)
|
||||
self.show_all()
|
||||
|
||||
def open(self):
|
||||
@ -1723,6 +1723,89 @@ class PlaylistView(Gtk.Box):
|
||||
def on_disconnected(self, *args):
|
||||
self.playlist_version=None
|
||||
|
||||
class CoverLyricsOSD(Gtk.Overlay):
|
||||
def __init__(self, client, settings, window):
|
||||
Gtk.Overlay.__init__(self)
|
||||
|
||||
#adding vars
|
||||
self.client=client
|
||||
self.settings=settings
|
||||
self.window=window
|
||||
self.hide_timeout_id=None
|
||||
|
||||
#cover
|
||||
self.cover=MainCover(self.client, self.settings, self.window)
|
||||
self.cover.set_property("border-width", 3)
|
||||
|
||||
#lyrics button
|
||||
self.lyrics_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("media-view-subtitles-symbolic", Gtk.IconSize.LARGE_TOOLBAR))
|
||||
self.lyrics_button.set_label(_("Show lyrics"))
|
||||
self.lyrics_button.set_margin_top(12)
|
||||
style_context=self.lyrics_button.get_style_context()
|
||||
style_context.add_class("osd")
|
||||
|
||||
#revealer
|
||||
self.revealer=Gtk.Revealer()
|
||||
self.revealer.set_halign(3)
|
||||
self.revealer.set_valign(1)
|
||||
self.revealer.add(self.lyrics_button)
|
||||
|
||||
#event box
|
||||
self.event_box=Gtk.EventBox()
|
||||
self.event_box.set_events(Gdk.EventMask.POINTER_MOTION_MASK)
|
||||
self.event_box.add(self.cover)
|
||||
|
||||
#packing
|
||||
self.add(self.event_box)
|
||||
self.add_overlay(self.revealer)
|
||||
|
||||
#connect
|
||||
self.lyrics_button.connect("clicked", self.on_lyrics_clicked)
|
||||
self.motion_notify_event=self.event_box.connect("motion-notify-event", self.on_motion_notify_event)
|
||||
self.lyrics_button.connect("enter-notify-event", self.on_enter_notify_event)
|
||||
self.lyrics_button.connect("leave-notify-event", self.on_leave_notify_event)
|
||||
self.client.emitter.connect("disconnected", self.on_disconnected)
|
||||
self.client.emitter.connect("reconnected", self.on_reconnected)
|
||||
self.event_box.handler_block(self.motion_notify_event)
|
||||
|
||||
def on_reconnected(self, *args):
|
||||
self.event_box.handler_unblock(self.motion_notify_event)
|
||||
|
||||
def on_disconnected(self, *args):
|
||||
self.cover.clear()
|
||||
self.event_box.handler_block(self.motion_notify_event)
|
||||
self.hide_lyrics_button()
|
||||
try:
|
||||
self.lyrics_win.destroy()
|
||||
except:
|
||||
pass
|
||||
|
||||
def hide_lyrics_button(self, *args):
|
||||
self.revealer.set_reveal_child(False)
|
||||
self.hide_timeout_id=None
|
||||
return False
|
||||
|
||||
def on_motion_notify_event(self, *args):
|
||||
self.revealer.set_reveal_child(True)
|
||||
if not self.hide_timeout_id == None:
|
||||
GLib.source_remove(self.hide_timeout_id)
|
||||
self.hide_timeout_id=GLib.timeout_add(1000, self.hide_lyrics_button)
|
||||
|
||||
def on_enter_notify_event(self, *args):
|
||||
if not self.hide_timeout_id == None:
|
||||
GLib.source_remove(self.hide_timeout_id)
|
||||
self.hide_timeout_id=None
|
||||
|
||||
def on_leave_notify_event(self, *args):
|
||||
if not self.hide_timeout_id == None:
|
||||
GLib.source_remove(self.hide_timeout_id)
|
||||
self.hide_timeout_id=GLib.timeout_add(1000, self.hide_lyrics_button)
|
||||
|
||||
def on_lyrics_clicked(self, widget):
|
||||
self.hide_lyrics_button()
|
||||
self.lyrics_win=LyricsWindow(self.client, self.settings)
|
||||
self.add_overlay(self.lyrics_win)
|
||||
|
||||
class Browser(Gtk.Box):
|
||||
def __init__(self, client, settings, window):
|
||||
Gtk.Box.__init__(self, orientation=Gtk.Orientation.VERTICAL)
|
||||
@ -1731,6 +1814,11 @@ class Browser(Gtk.Box):
|
||||
self.client=client
|
||||
self.settings=settings
|
||||
self.window=window
|
||||
self.use_csd=self.settings.get_boolean("use-csd")
|
||||
|
||||
if self.use_csd:
|
||||
self.icon_size=Gtk.IconSize.BUTTON
|
||||
else:
|
||||
self.icon_size=self.settings.get_gtk_icon_size("icon-size")
|
||||
|
||||
#widgets
|
||||
@ -1742,26 +1830,9 @@ class Browser(Gtk.Box):
|
||||
self.artist_view=ArtistView(self.client, self.settings, self.genre_select)
|
||||
self.search=SearchWindow(self.client)
|
||||
self.album_view=AlbumView(self.client, self.settings, self.genre_select, self.window)
|
||||
self.main_cover=MainCover(self.client, self.settings, self.window)
|
||||
self.main_cover.set_property("border-width", 3)
|
||||
self.cover=CoverLyricsOSD(self.client, self.settings, self.window)
|
||||
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
|
||||
self.back_to_album_button.connect("clicked", self.back_to_album)
|
||||
self.search_button.connect("toggled", self.on_search_toggled)
|
||||
@ -1769,37 +1840,35 @@ class Browser(Gtk.Box):
|
||||
self.settings.connect("changed::playlist-right", self.on_playlist_pos_settings_changed)
|
||||
self.client.emitter.connect("disconnected", self.on_disconnected)
|
||||
self.client.emitter.connect("reconnected", self.on_reconnected)
|
||||
self.lyrics_button.connect("toggled", self.on_lyrics_toggled)
|
||||
|
||||
|
||||
#packing
|
||||
hbox=Gtk.Box(spacing=6)
|
||||
hbox.set_property("border-width", 6)
|
||||
hbox.pack_start(self.back_to_album_button, False, False, 0)
|
||||
hbox.pack_start(self.genre_select, True, True, 0)
|
||||
hbox.pack_start(self.search_button, False, False, 0)
|
||||
|
||||
self.stack=Gtk.Stack()
|
||||
self.stack.set_transition_type(1)
|
||||
self.stack.add_named(self.album_view, "albums")
|
||||
self.stack.add_named(self.search, "search")
|
||||
|
||||
self.box1=Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
|
||||
self.box1.pack_start(hbox, 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.paned0=Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)
|
||||
self.paned0.set_wide_handle(True)
|
||||
self.paned0.pack1(self.overlay, False, False)
|
||||
self.paned1=Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)
|
||||
self.paned2=Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)
|
||||
|
||||
self.paned0.pack1(self.cover, False, False)
|
||||
self.paned0.pack2(self.playlist_view, True, False)
|
||||
|
||||
self.paned1=Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)
|
||||
self.paned1.set_wide_handle(True)
|
||||
|
||||
self.paned2=Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)
|
||||
self.paned2.set_wide_handle(True)
|
||||
|
||||
self.paned1.pack1(self.box1, False, False)
|
||||
if self.use_csd:
|
||||
self.paned1.pack1(self.artist_view, False, False)
|
||||
else:
|
||||
hbox=Gtk.Box(spacing=6)
|
||||
hbox.set_property("border-width", 6)
|
||||
hbox.pack_start(self.back_to_album_button, False, False, 0)
|
||||
hbox.pack_start(self.genre_select, True, True, 0)
|
||||
hbox.pack_start(self.search_button, False, False, 0)
|
||||
box1=Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
|
||||
box1.pack_start(hbox, False, False, 0)
|
||||
box1.pack_start(Gtk.Separator.new(orientation=Gtk.Orientation.HORIZONTAL), False, False, 0)
|
||||
box1.pack_start(self.artist_view, True, True, 0)
|
||||
self.paned1.pack1(box1, False, False)
|
||||
self.paned1.pack2(self.stack, True, False)
|
||||
|
||||
self.paned2.pack1(self.paned1, True, False)
|
||||
@ -1825,8 +1894,8 @@ class Browser(Gtk.Box):
|
||||
self.genre_select.clear()
|
||||
self.artist_view.clear()
|
||||
self.album_view.clear()
|
||||
self.search.clear()
|
||||
self.playlist_view.clear()
|
||||
self.main_cover.clear()
|
||||
|
||||
def search_started(self):
|
||||
return self.search.started()
|
||||
@ -1874,7 +1943,6 @@ class Browser(Gtk.Box):
|
||||
def on_reconnected(self, *args):
|
||||
self.back_to_album_button.set_sensitive(True)
|
||||
self.search_button.set_sensitive(True)
|
||||
self.lyrics_button.set_sensitive(True)
|
||||
self.genre_select.set_sensitive(True)
|
||||
|
||||
def on_disconnected(self, *args):
|
||||
@ -1882,8 +1950,6 @@ class Browser(Gtk.Box):
|
||||
self.back_to_album_button.set_sensitive(False)
|
||||
self.search_button.set_active(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)
|
||||
|
||||
def on_artists_changed(self, *args):
|
||||
@ -1899,15 +1965,6 @@ class Browser(Gtk.Box):
|
||||
self.paned0.set_orientation(Gtk.Orientation.HORIZONTAL)
|
||||
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):
|
||||
def __init__(self, parent, settings):
|
||||
Gtk.Grid.__init__(self)
|
||||
@ -2122,7 +2179,8 @@ class GeneralSettings(Gtk.Box):
|
||||
|
||||
#check buttons
|
||||
check_buttons={}
|
||||
settings_list=[(_("Show stop button"), "show-stop"), \
|
||||
settings_list=[(_("Use Client-side decoration"), "use-csd"), \
|
||||
(_("Show stop button"), "show-stop"), \
|
||||
(_("Show initials in artist view"), "show-initials"), \
|
||||
(_("Show tooltips in album view"), "show-album-view-tooltips"), \
|
||||
(_("Use 'Album Artist' tag"), "use-album-artist"), \
|
||||
@ -2166,6 +2224,7 @@ class GeneralSettings(Gtk.Box):
|
||||
|
||||
#packing
|
||||
self.pack_start(view_heading, True, True, 0)
|
||||
self.pack_start(check_buttons["use-csd"], True, True, 0)
|
||||
self.pack_start(check_buttons["show-stop"], True, True, 0)
|
||||
self.pack_start(check_buttons["show-initials"], True, True, 0)
|
||||
self.pack_start(check_buttons["show-album-view-tooltips"], True, True, 0)
|
||||
@ -2335,7 +2394,7 @@ class SettingsDialog(Gtk.Dialog):
|
||||
tabs.append_page(profiles, Gtk.Label(label=_("Profiles")))
|
||||
tabs.append_page(playlist, Gtk.Label(label=_("Playlist")))
|
||||
self.vbox.pack_start(tabs, True, True, 0) #vbox default widget of dialogs
|
||||
self.vbox.set_spacing(6)
|
||||
self.vbox.set_spacing(3)
|
||||
|
||||
self.show_all()
|
||||
|
||||
@ -2840,7 +2899,7 @@ class ServerStats(Gtk.Dialog):
|
||||
frame=Gtk.Frame()
|
||||
frame.add(self.treeview)
|
||||
self.vbox.pack_start(frame, True, True, 0)
|
||||
self.vbox.set_spacing(6)
|
||||
self.vbox.set_spacing(3)
|
||||
self.show_all()
|
||||
self.run()
|
||||
|
||||
@ -2910,6 +2969,10 @@ class SearchWindow(Gtk.Box):
|
||||
def started(self):
|
||||
return self.search_entry.has_focus()
|
||||
|
||||
def clear(self, *args):
|
||||
self.songs_view.clear()
|
||||
self.search_entry.set_text("")
|
||||
|
||||
def on_search_changed(self, widget):
|
||||
self.songs_view.clear()
|
||||
self.label.set_text("")
|
||||
@ -2934,15 +2997,9 @@ class SearchWindow(Gtk.Box):
|
||||
def on_open_clicked(self, *args):
|
||||
self.client.files_to_playlist(self.songs_view.get_files(), False)
|
||||
|
||||
class LyricsWindow(Gtk.Frame):
|
||||
def __init__(self, client, settings, width, height):
|
||||
Gtk.Frame.__init__(self)
|
||||
|
||||
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)
|
||||
class LyricsWindow(Gtk.Overlay):
|
||||
def __init__(self, client, settings):
|
||||
Gtk.Overlay.__init__(self)
|
||||
|
||||
#adding vars
|
||||
self.settings=settings
|
||||
@ -2954,19 +3011,40 @@ class LyricsWindow(Gtk.Frame):
|
||||
self.label.set_yalign(0)
|
||||
self.label.set_xalign(0)
|
||||
|
||||
#connect
|
||||
self.file_changed=self.client.emitter.connect("playing_file_changed", self.refresh)
|
||||
self.connect("destroy", self.remove_handlers)
|
||||
|
||||
#packing
|
||||
#scroll
|
||||
self.scroll=Gtk.ScrolledWindow()
|
||||
self.scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
|
||||
self.scroll.add(self.label)
|
||||
self.scroll.set_margin_start(5)
|
||||
self.add(self.scroll)
|
||||
|
||||
#frame
|
||||
frame=Gtk.Frame()
|
||||
style_context=frame.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)
|
||||
|
||||
#close button
|
||||
close_button=Gtk.ToggleButton(image=Gtk.Image.new_from_icon_name("window-close-symbolic", Gtk.IconSize.LARGE_TOOLBAR))
|
||||
close_button.set_margin_top(12)
|
||||
close_button.set_margin_end(12)
|
||||
style_context=close_button.get_style_context()
|
||||
style_context.add_class("osd")
|
||||
close_button.set_halign(2)
|
||||
close_button.set_valign(1)
|
||||
|
||||
#connect
|
||||
self.file_changed=self.client.emitter.connect("playing_file_changed", self.refresh)
|
||||
self.connect("destroy", self.remove_handlers)
|
||||
close_button.connect("clicked", self.on_close_button_clicked)
|
||||
|
||||
#packing
|
||||
frame.add(self.scroll)
|
||||
self.add(frame)
|
||||
self.add_overlay(close_button)
|
||||
|
||||
self.show_all()
|
||||
|
||||
self.refresh()
|
||||
|
||||
def remove_handlers(self, *args):
|
||||
@ -3014,6 +3092,9 @@ class LyricsWindow(Gtk.Frame):
|
||||
except:
|
||||
return output.encode('utf-8')
|
||||
|
||||
def on_close_button_clicked(self, *args):
|
||||
self.destroy()
|
||||
|
||||
class MainWindow(Gtk.ApplicationWindow):
|
||||
def __init__(self, app, client, settings):
|
||||
Gtk.ApplicationWindow.__init__(self, title=("mpdevil"), application=app)
|
||||
@ -3026,6 +3107,7 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||
self.app=app
|
||||
self.client=client
|
||||
self.icon_size=self.settings.get_gtk_icon_size("icon-size")
|
||||
self.use_csd=self.settings.get_boolean("use-csd")
|
||||
|
||||
#MPRIS
|
||||
DBusGMainLoop(set_as_default=True)
|
||||
@ -3069,7 +3151,6 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||
menu_popover=Gtk.Popover.new_from_model(menu_button, menu)
|
||||
menu_button.set_popover(menu_popover)
|
||||
menu_button.set_tooltip_text(_("Menu"))
|
||||
menu_button.set_image(image=Gtk.Image.new_from_icon_name("open-menu-symbolic", self.icon_size))
|
||||
|
||||
#connect
|
||||
self.settings.connect("changed::profiles", self.on_settings_changed)
|
||||
@ -3089,6 +3170,21 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||
self.vbox.pack_start(self.action_bar, False, False, 0)
|
||||
self.action_bar.pack_start(self.control)
|
||||
self.action_bar.pack_start(self.progress)
|
||||
|
||||
if self.use_csd:
|
||||
menu_button.set_image(image=Gtk.Image.new_from_icon_name("open-menu-symbolic", Gtk.IconSize.BUTTON))
|
||||
self.header_bar=Gtk.HeaderBar()
|
||||
self.header_bar.set_show_close_button(True)
|
||||
self.header_bar.set_title("mpdevil")
|
||||
self.set_titlebar(self.header_bar)
|
||||
self.header_bar.pack_start(self.browser.back_to_album_button)
|
||||
self.header_bar.pack_start(self.browser.genre_select)
|
||||
self.header_bar.pack_end(menu_button)
|
||||
self.header_bar.pack_end(self.profiles)
|
||||
self.header_bar.pack_end(self.browser.search_button)
|
||||
self.action_bar.pack_end(self.play_opts)
|
||||
else:
|
||||
menu_button.set_image(image=Gtk.Image.new_from_icon_name("open-menu-symbolic", self.icon_size))
|
||||
self.action_bar.pack_start(self.profiles)
|
||||
self.action_bar.pack_start(self.play_opts)
|
||||
self.action_bar.pack_end(menu_button)
|
||||
@ -3109,7 +3205,11 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||
date=" ("+song["date"]+")"
|
||||
else:
|
||||
date=""
|
||||
self.set_title(song["artist"]+" - "+song["title"]+" - "+song["album"]+date)
|
||||
if self.use_csd:
|
||||
self.header_bar.set_title(song["title"]+" - "+song["artist"])
|
||||
self.header_bar.set_subtitle(song["album"]+date)
|
||||
else:
|
||||
self.set_title(song["title"]+""+song["artist"]+" - "+song["album"]+date)
|
||||
if self.settings.get_boolean("send-notify"):
|
||||
if not self.is_active() and self.client.status()["state"] == "play":
|
||||
notify=Notify.Notification.new(song["title"], song["artist"]+"\n"+song["album"]+date)
|
||||
@ -3117,6 +3217,10 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||
notify.set_image_from_pixbuf(pixbuf)
|
||||
notify.show()
|
||||
except:
|
||||
if self.use_csd:
|
||||
self.header_bar.set_title("mpdevil")
|
||||
self.header_bar.set_subtitle("")
|
||||
else:
|
||||
self.set_title("mpdevil")
|
||||
|
||||
def on_reconnected(self, *args):
|
||||
@ -3128,6 +3232,10 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||
|
||||
def on_disconnected(self, *args):
|
||||
self.dbus_service.release_name()
|
||||
if self.use_csd:
|
||||
self.header_bar.set_title("mpdevil")
|
||||
self.header_bar.set_subtitle("(not connected)")
|
||||
else:
|
||||
self.set_title("mpdevil (not connected)")
|
||||
self.songid_playing=None
|
||||
self.progress.set_sensitive(False)
|
||||
|
@ -41,6 +41,11 @@
|
||||
<summary>Size of button icons in control bar</summary>
|
||||
<description></description>
|
||||
</key>
|
||||
<key type="b" name="use-csd">
|
||||
<default>false</default>
|
||||
<summary>Use CSD for main window</summary>
|
||||
<description></description>
|
||||
</key>
|
||||
<key type="b" name="show-stop">
|
||||
<default>false</default>
|
||||
<summary>Show stop button</summary>
|
||||
|
152
po/de.po
152
po/de.po
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-05-18 20:45+0200\n"
|
||||
"PO-Revision-Date: 2020-05-18 20:46+0200\n"
|
||||
"POT-Creation-Date: 2020-05-21 21:16+0200\n"
|
||||
"PO-Revision-Date: 2020-05-21 21:17+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: de\n"
|
||||
@ -30,23 +30,23 @@ msgstr "Unbekannter Interpret"
|
||||
msgid "Unknown Album"
|
||||
msgstr "Unbekanntes Album"
|
||||
|
||||
#: mpdevil.py:919 mpdevil.py:1543 mpdevil.py:2228
|
||||
#: mpdevil.py:919 mpdevil.py:1549 mpdevil.py:2294
|
||||
msgid "No"
|
||||
msgstr "Nr."
|
||||
|
||||
#: mpdevil.py:924 mpdevil.py:1549 mpdevil.py:2228
|
||||
#: mpdevil.py:924 mpdevil.py:1555 mpdevil.py:2294
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
|
||||
#: mpdevil.py:929 mpdevil.py:1152 mpdevil.py:1552 mpdevil.py:2228
|
||||
#: mpdevil.py:929 mpdevil.py:1152 mpdevil.py:1558 mpdevil.py:2294
|
||||
msgid "Artist"
|
||||
msgstr "Interpret"
|
||||
|
||||
#: mpdevil.py:934 mpdevil.py:1555 mpdevil.py:2228
|
||||
#: mpdevil.py:934 mpdevil.py:1561 mpdevil.py:2294
|
||||
msgid "Album"
|
||||
msgstr "Album"
|
||||
|
||||
#: mpdevil.py:940 mpdevil.py:1558 mpdevil.py:2228
|
||||
#: mpdevil.py:940 mpdevil.py:1564 mpdevil.py:2294
|
||||
msgid "Length"
|
||||
msgstr "Länge"
|
||||
|
||||
@ -62,191 +62,195 @@ msgstr "Albuminterpret"
|
||||
msgid "all artists"
|
||||
msgstr "Alle Interpreten"
|
||||
|
||||
#: mpdevil.py:1289
|
||||
#: mpdevil.py:1295
|
||||
#, python-format
|
||||
msgid "%(total_tracks)i titles on %(discs)i discs (%(total_length)s)"
|
||||
msgstr "%(total_tracks)i Titel auf %(discs)i CDs (%(total_length)s)"
|
||||
|
||||
#: mpdevil.py:1291 mpdevil.py:1641
|
||||
#: mpdevil.py:1297 mpdevil.py:1647
|
||||
#, python-format
|
||||
msgid "%(total_tracks)i titles (%(total_length)s)"
|
||||
msgstr "%(total_tracks)i Titel (%(total_length)s)"
|
||||
|
||||
#: mpdevil.py:1546 mpdevil.py:2228
|
||||
#: mpdevil.py:1552 mpdevil.py:2294
|
||||
msgid "Disc"
|
||||
msgstr "CD"
|
||||
|
||||
#: mpdevil.py:1561 mpdevil.py:2228
|
||||
#: mpdevil.py:1567 mpdevil.py:2294
|
||||
msgid "Year"
|
||||
msgstr "Jahr"
|
||||
|
||||
#: mpdevil.py:1564 mpdevil.py:2228
|
||||
#: mpdevil.py:1570 mpdevil.py:2294
|
||||
msgid "Genre"
|
||||
msgstr "Genre"
|
||||
|
||||
#: mpdevil.py:1732
|
||||
msgid "Back to current album"
|
||||
msgstr "Zurück zu aktuellem Album"
|
||||
|
||||
#: mpdevil.py:1734
|
||||
msgid "Search"
|
||||
msgstr "Suche"
|
||||
|
||||
#: mpdevil.py:1745
|
||||
#: mpdevil.py:1742
|
||||
msgid "Show lyrics"
|
||||
msgstr "Zeige Liedtext"
|
||||
|
||||
#: mpdevil.py:1939
|
||||
#: mpdevil.py:1826
|
||||
msgid "Back to current album"
|
||||
msgstr "Zurück zu aktuellem Album"
|
||||
|
||||
#: mpdevil.py:1828
|
||||
msgid "Search"
|
||||
msgstr "Suche"
|
||||
|
||||
#: mpdevil.py:2003
|
||||
msgid "Profile:"
|
||||
msgstr "Profil:"
|
||||
|
||||
#: mpdevil.py:1941
|
||||
#: mpdevil.py:2005
|
||||
msgid "Name:"
|
||||
msgstr "Name:"
|
||||
|
||||
#: mpdevil.py:1943
|
||||
#: mpdevil.py:2007
|
||||
msgid "Host:"
|
||||
msgstr "Host:"
|
||||
|
||||
#: mpdevil.py:1945
|
||||
#: mpdevil.py:2009
|
||||
msgid "Password:"
|
||||
msgstr "Passwort:"
|
||||
|
||||
#: mpdevil.py:1947
|
||||
#: mpdevil.py:2011
|
||||
msgid "Music lib:"
|
||||
msgstr "Musikverzeichnis:"
|
||||
|
||||
#: mpdevil.py:2034
|
||||
#: mpdevil.py:2098
|
||||
msgid "Choose directory"
|
||||
msgstr "Verzeichnis Wählen"
|
||||
|
||||
#: mpdevil.py:2072
|
||||
#: mpdevil.py:2136
|
||||
msgid "Main cover size:"
|
||||
msgstr "Größe des Haupt-Covers:"
|
||||
|
||||
#: mpdevil.py:2076
|
||||
#: mpdevil.py:2140
|
||||
msgid "Album view cover size:"
|
||||
msgstr "Covergröße in Albumliste:"
|
||||
|
||||
#: mpdevil.py:2080
|
||||
#: mpdevil.py:2144
|
||||
msgid "Button icon size:"
|
||||
msgstr "Symbolgröße der Knöpfe:"
|
||||
|
||||
#: mpdevil.py:2082
|
||||
#: mpdevil.py:2146
|
||||
msgid "(restart required)"
|
||||
msgstr "(Neustart erforderlich)"
|
||||
|
||||
#: mpdevil.py:2093
|
||||
#: mpdevil.py:2157
|
||||
msgid "Sort albums by:"
|
||||
msgstr "Sortiere Alben nach:"
|
||||
|
||||
#: mpdevil.py:2093
|
||||
#: mpdevil.py:2157
|
||||
msgid "name"
|
||||
msgstr "Name"
|
||||
|
||||
#: mpdevil.py:2093
|
||||
#: mpdevil.py:2157
|
||||
msgid "year"
|
||||
msgstr "Jahr"
|
||||
|
||||
#: mpdevil.py:2094
|
||||
#: mpdevil.py:2158
|
||||
msgid "Position of playlist:"
|
||||
msgstr "Wiedergabelistenposition:"
|
||||
|
||||
#: mpdevil.py:2094
|
||||
#: mpdevil.py:2158
|
||||
msgid "bottom"
|
||||
msgstr "unten"
|
||||
|
||||
#: mpdevil.py:2094
|
||||
#: mpdevil.py:2158
|
||||
msgid "right"
|
||||
msgstr "rechts"
|
||||
|
||||
#: mpdevil.py:2110
|
||||
#: mpdevil.py:2174
|
||||
msgid "<b>View</b>"
|
||||
msgstr "<b>Ansicht</b>"
|
||||
|
||||
#: mpdevil.py:2113
|
||||
#: mpdevil.py:2177
|
||||
msgid "<b>Behavior</b>"
|
||||
msgstr "<b>Verhalten</b>"
|
||||
|
||||
#: mpdevil.py:2118
|
||||
#: mpdevil.py:2182
|
||||
msgid "Use Client-side decoration"
|
||||
msgstr "Benutze \"Client-side decoration\""
|
||||
|
||||
#: mpdevil.py:2183
|
||||
msgid "Show stop button"
|
||||
msgstr "Zeige Stopp-Knopf"
|
||||
|
||||
#: mpdevil.py:2119
|
||||
#: mpdevil.py:2184
|
||||
msgid "Show initials in artist view"
|
||||
msgstr "Zeige Anfangsbuchstaben in Interpretenliste"
|
||||
|
||||
#: mpdevil.py:2120
|
||||
#: mpdevil.py:2185
|
||||
msgid "Show tooltips in album view"
|
||||
msgstr "Zeige Tooltips in Albumliste"
|
||||
|
||||
#: mpdevil.py:2121
|
||||
#: mpdevil.py:2186
|
||||
msgid "Use 'Album Artist' tag"
|
||||
msgstr "Benutze \"Album Artist\" Tag"
|
||||
|
||||
#: mpdevil.py:2122
|
||||
#: mpdevil.py:2187
|
||||
msgid "Send notification on title change"
|
||||
msgstr "Sende Benachrichtigung bei Titelwechsel"
|
||||
|
||||
#: mpdevil.py:2123
|
||||
#: mpdevil.py:2188
|
||||
msgid "Stop playback on quit"
|
||||
msgstr "Wiedergabe beim Beenden stoppen"
|
||||
|
||||
#: mpdevil.py:2124
|
||||
#: mpdevil.py:2189
|
||||
msgid "Play selected albums and titles immediately"
|
||||
msgstr "Ausgewählte Alben und Titel sofort abspielen"
|
||||
|
||||
#: mpdevil.py:2200
|
||||
#: mpdevil.py:2266
|
||||
msgid "Choose the order of information to appear in the playlist:"
|
||||
msgstr ""
|
||||
"Lege die Reihenfolge fest, in der Informationen in der Wiedergabeliste "
|
||||
"angezeigt werden sollen:"
|
||||
|
||||
#: mpdevil.py:2313 mpdevil.py:3055
|
||||
#: mpdevil.py:2379 mpdevil.py:3144
|
||||
msgid "Settings"
|
||||
msgstr "Einstellungen"
|
||||
|
||||
#: mpdevil.py:2327
|
||||
#: mpdevil.py:2393
|
||||
msgid "General"
|
||||
msgstr "Allgemein"
|
||||
|
||||
#: mpdevil.py:2328
|
||||
#: mpdevil.py:2394
|
||||
msgid "Profiles"
|
||||
msgstr "Profile"
|
||||
|
||||
#: mpdevil.py:2329
|
||||
#: mpdevil.py:2395
|
||||
msgid "Playlist"
|
||||
msgstr "Wiedergabeliste"
|
||||
|
||||
#: mpdevil.py:2580
|
||||
#: mpdevil.py:2646
|
||||
msgid "Random mode"
|
||||
msgstr "Zufallsmodus"
|
||||
|
||||
#: mpdevil.py:2582
|
||||
#: mpdevil.py:2648
|
||||
msgid "Repeat mode"
|
||||
msgstr "Dauerschleife"
|
||||
|
||||
#: mpdevil.py:2584
|
||||
#: mpdevil.py:2650
|
||||
msgid "Single mode"
|
||||
msgstr "Einzelstückmodus"
|
||||
|
||||
#: mpdevil.py:2586
|
||||
#: mpdevil.py:2652
|
||||
msgid "Consume mode"
|
||||
msgstr "Wiedergabeliste verbrauchen"
|
||||
|
||||
#: mpdevil.py:2676
|
||||
#: mpdevil.py:2742
|
||||
msgid "Show additional information"
|
||||
msgstr "Zeige weitere Informationen"
|
||||
|
||||
#: mpdevil.py:2702
|
||||
#: mpdevil.py:2768
|
||||
msgid "MPD-Tag"
|
||||
msgstr "MPD-Tag"
|
||||
|
||||
#: mpdevil.py:2706
|
||||
#: mpdevil.py:2772
|
||||
msgid "Value"
|
||||
msgstr "Wert"
|
||||
|
||||
#: mpdevil.py:2738
|
||||
#: mpdevil.py:2804
|
||||
#, python-format
|
||||
msgid ""
|
||||
"%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)s bit, %(channels)s "
|
||||
@ -255,64 +259,64 @@ msgstr ""
|
||||
"%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)s bit, %(channels)s "
|
||||
"Kanäle, %(file_type)s"
|
||||
|
||||
#: mpdevil.py:2792
|
||||
#: mpdevil.py:2858
|
||||
msgid "Stats"
|
||||
msgstr "Statistik"
|
||||
|
||||
#: mpdevil.py:2866
|
||||
#: mpdevil.py:2932
|
||||
msgid "Add"
|
||||
msgstr "Hinzufügen"
|
||||
|
||||
#: mpdevil.py:2869
|
||||
#: mpdevil.py:2935
|
||||
msgid "Play"
|
||||
msgstr "Wiedergabe"
|
||||
|
||||
#: mpdevil.py:2872
|
||||
#: mpdevil.py:2938
|
||||
msgid "Open"
|
||||
msgstr "Öffnen"
|
||||
|
||||
#: mpdevil.py:2911
|
||||
#: mpdevil.py:2981
|
||||
#, python-format
|
||||
msgid "hits: %i"
|
||||
msgstr "Treffer: %i"
|
||||
|
||||
#: mpdevil.py:2969
|
||||
#: mpdevil.py:3054
|
||||
msgid "searching..."
|
||||
msgstr "suche..."
|
||||
|
||||
#: mpdevil.py:2973
|
||||
#: mpdevil.py:3058
|
||||
msgid "lyrics not found"
|
||||
msgstr "Liedtext nicht gefunden"
|
||||
|
||||
#: mpdevil.py:3047
|
||||
#: mpdevil.py:3136
|
||||
msgid "Select profile"
|
||||
msgstr "Profil auswählen"
|
||||
|
||||
#: mpdevil.py:3054
|
||||
#: mpdevil.py:3143
|
||||
msgid "Save window layout"
|
||||
msgstr "Fensterlayout speichern"
|
||||
|
||||
#: mpdevil.py:3056
|
||||
#: mpdevil.py:3145
|
||||
msgid "Update database"
|
||||
msgstr "Datenbank aktualisieren"
|
||||
|
||||
#: mpdevil.py:3057
|
||||
#: mpdevil.py:3146
|
||||
msgid "Server stats"
|
||||
msgstr "Serverstatistik"
|
||||
|
||||
#: mpdevil.py:3058
|
||||
#: mpdevil.py:3147
|
||||
msgid "About"
|
||||
msgstr "Über"
|
||||
|
||||
#: mpdevil.py:3059
|
||||
#: mpdevil.py:3148
|
||||
msgid "Quit"
|
||||
msgstr "Beenden"
|
||||
|
||||
#: mpdevil.py:3064
|
||||
#: mpdevil.py:3153
|
||||
msgid "Menu"
|
||||
msgstr "Menü"
|
||||
|
||||
#: mpdevil.py:3213
|
||||
#: mpdevil.py:3338
|
||||
msgid "A small MPD client written in python"
|
||||
msgstr ""
|
||||
|
||||
|
150
po/mpdevil.pot
150
po/mpdevil.pot
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-05-18 20:45+0200\n"
|
||||
"POT-Creation-Date: 2020-05-21 21:16+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -29,23 +29,23 @@ msgstr ""
|
||||
msgid "Unknown Album"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:919 mpdevil.py:1543 mpdevil.py:2228
|
||||
#: mpdevil.py:919 mpdevil.py:1549 mpdevil.py:2294
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:924 mpdevil.py:1549 mpdevil.py:2228
|
||||
#: mpdevil.py:924 mpdevil.py:1555 mpdevil.py:2294
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:929 mpdevil.py:1152 mpdevil.py:1552 mpdevil.py:2228
|
||||
#: mpdevil.py:929 mpdevil.py:1152 mpdevil.py:1558 mpdevil.py:2294
|
||||
msgid "Artist"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:934 mpdevil.py:1555 mpdevil.py:2228
|
||||
#: mpdevil.py:934 mpdevil.py:1561 mpdevil.py:2294
|
||||
msgid "Album"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:940 mpdevil.py:1558 mpdevil.py:2228
|
||||
#: mpdevil.py:940 mpdevil.py:1564 mpdevil.py:2294
|
||||
msgid "Length"
|
||||
msgstr ""
|
||||
|
||||
@ -61,252 +61,256 @@ msgstr ""
|
||||
msgid "all artists"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1289
|
||||
#: mpdevil.py:1295
|
||||
#, python-format
|
||||
msgid "%(total_tracks)i titles on %(discs)i discs (%(total_length)s)"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1291 mpdevil.py:1641
|
||||
#: mpdevil.py:1297 mpdevil.py:1647
|
||||
#, python-format
|
||||
msgid "%(total_tracks)i titles (%(total_length)s)"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1546 mpdevil.py:2228
|
||||
#: mpdevil.py:1552 mpdevil.py:2294
|
||||
msgid "Disc"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1561 mpdevil.py:2228
|
||||
#: mpdevil.py:1567 mpdevil.py:2294
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1564 mpdevil.py:2228
|
||||
#: mpdevil.py:1570 mpdevil.py:2294
|
||||
msgid "Genre"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1732
|
||||
msgid "Back to current album"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1734
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1745
|
||||
#: mpdevil.py:1742
|
||||
msgid "Show lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1939
|
||||
#: mpdevil.py:1826
|
||||
msgid "Back to current album"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1828
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2003
|
||||
msgid "Profile:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1941
|
||||
#: mpdevil.py:2005
|
||||
msgid "Name:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1943
|
||||
#: mpdevil.py:2007
|
||||
msgid "Host:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1945
|
||||
#: mpdevil.py:2009
|
||||
msgid "Password:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1947
|
||||
#: mpdevil.py:2011
|
||||
msgid "Music lib:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2034
|
||||
#: mpdevil.py:2098
|
||||
msgid "Choose directory"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2072
|
||||
#: mpdevil.py:2136
|
||||
msgid "Main cover size:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2076
|
||||
#: mpdevil.py:2140
|
||||
msgid "Album view cover size:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2080
|
||||
#: mpdevil.py:2144
|
||||
msgid "Button icon size:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2082
|
||||
#: mpdevil.py:2146
|
||||
msgid "(restart required)"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2093
|
||||
#: mpdevil.py:2157
|
||||
msgid "Sort albums by:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2093
|
||||
#: mpdevil.py:2157
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2093
|
||||
#: mpdevil.py:2157
|
||||
msgid "year"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2094
|
||||
#: mpdevil.py:2158
|
||||
msgid "Position of playlist:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2094
|
||||
#: mpdevil.py:2158
|
||||
msgid "bottom"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2094
|
||||
#: mpdevil.py:2158
|
||||
msgid "right"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2110
|
||||
#: mpdevil.py:2174
|
||||
msgid "<b>View</b>"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2113
|
||||
#: mpdevil.py:2177
|
||||
msgid "<b>Behavior</b>"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2118
|
||||
#: mpdevil.py:2182
|
||||
msgid "Use Client-side decoration"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2183
|
||||
msgid "Show stop button"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2119
|
||||
#: mpdevil.py:2184
|
||||
msgid "Show initials in artist view"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2120
|
||||
#: mpdevil.py:2185
|
||||
msgid "Show tooltips in album view"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2121
|
||||
#: mpdevil.py:2186
|
||||
msgid "Use 'Album Artist' tag"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2122
|
||||
#: mpdevil.py:2187
|
||||
msgid "Send notification on title change"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2123
|
||||
#: mpdevil.py:2188
|
||||
msgid "Stop playback on quit"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2124
|
||||
#: mpdevil.py:2189
|
||||
msgid "Play selected albums and titles immediately"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2200
|
||||
#: mpdevil.py:2266
|
||||
msgid "Choose the order of information to appear in the playlist:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2313 mpdevil.py:3055
|
||||
#: mpdevil.py:2379 mpdevil.py:3144
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2327
|
||||
#: mpdevil.py:2393
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2328
|
||||
#: mpdevil.py:2394
|
||||
msgid "Profiles"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2329
|
||||
#: mpdevil.py:2395
|
||||
msgid "Playlist"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2580
|
||||
#: mpdevil.py:2646
|
||||
msgid "Random mode"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2582
|
||||
#: mpdevil.py:2648
|
||||
msgid "Repeat mode"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2584
|
||||
#: mpdevil.py:2650
|
||||
msgid "Single mode"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2586
|
||||
#: mpdevil.py:2652
|
||||
msgid "Consume mode"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2676
|
||||
#: mpdevil.py:2742
|
||||
msgid "Show additional information"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2702
|
||||
#: mpdevil.py:2768
|
||||
msgid "MPD-Tag"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2706
|
||||
#: mpdevil.py:2772
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2738
|
||||
#: mpdevil.py:2804
|
||||
#, python-format
|
||||
msgid ""
|
||||
"%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)s bit, %(channels)s "
|
||||
"channels, %(file_type)s"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2792
|
||||
#: mpdevil.py:2858
|
||||
msgid "Stats"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2866
|
||||
#: mpdevil.py:2932
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2869
|
||||
#: mpdevil.py:2935
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2872
|
||||
#: mpdevil.py:2938
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2911
|
||||
#: mpdevil.py:2981
|
||||
#, python-format
|
||||
msgid "hits: %i"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2969
|
||||
#: mpdevil.py:3054
|
||||
msgid "searching..."
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2973
|
||||
#: mpdevil.py:3058
|
||||
msgid "lyrics not found"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3047
|
||||
#: mpdevil.py:3136
|
||||
msgid "Select profile"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3054
|
||||
#: mpdevil.py:3143
|
||||
msgid "Save window layout"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3056
|
||||
#: mpdevil.py:3145
|
||||
msgid "Update database"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3057
|
||||
#: mpdevil.py:3146
|
||||
msgid "Server stats"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3058
|
||||
#: mpdevil.py:3147
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3059
|
||||
#: mpdevil.py:3148
|
||||
msgid "Quit"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3064
|
||||
#: mpdevil.py:3153
|
||||
msgid "Menu"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3213
|
||||
#: mpdevil.py:3338
|
||||
msgid "A small MPD client written in python"
|
||||
msgstr ""
|
||||
|
Loading…
Reference in New Issue
Block a user