mirror of
https://github.com/SoongNoonien/mpdevil.git
synced 2023-08-10 21:12:44 +03:00
reworked AlbumDialog and SearchWindow
This commit is contained in:
parent
6bf3c86068
commit
49ae372b43
246
bin/mpdevil.py
246
bin/mpdevil.py
@ -837,19 +837,21 @@ class Client(MPDClient):
|
||||
def on_settings_changed(self, *args):
|
||||
self.disconnect()
|
||||
|
||||
def files_to_playlist(self, files, append, force=False):
|
||||
if append:
|
||||
def files_to_playlist(self, files, mode="default"): # modes: default, play, append, enqueue
|
||||
def append(files):
|
||||
for f in files:
|
||||
self.add(f)
|
||||
else:
|
||||
if self.settings.get_boolean("force-mode") or force or self.status()["state"] == "stop":
|
||||
if not files == []:
|
||||
self.clear()
|
||||
for f in files:
|
||||
self.add(f)
|
||||
self.play()
|
||||
def play(files):
|
||||
if not files == []:
|
||||
self.clear()
|
||||
for f in files:
|
||||
self.add(f)
|
||||
self.play()
|
||||
def enqueue(files):
|
||||
status=self.status()
|
||||
if status["state"] == "stop":
|
||||
play(files)
|
||||
else:
|
||||
status=self.status()
|
||||
self.moveid(status["songid"], 0)
|
||||
current_song_file=self.playlistinfo()[0]["file"]
|
||||
try:
|
||||
@ -861,10 +863,21 @@ class Client(MPDClient):
|
||||
self.add(f)
|
||||
else:
|
||||
self.move(0, (len(self.playlistinfo())-1))
|
||||
if mode == "append":
|
||||
append(files)
|
||||
elif mode == "enqueue":
|
||||
enqueue(files)
|
||||
elif mode == "play":
|
||||
play(files)
|
||||
elif mode == "default":
|
||||
if self.settings.get_boolean("force-mode"):
|
||||
play(files)
|
||||
else:
|
||||
enqueue(files)
|
||||
|
||||
def album_to_playlist(self, album, artist, year, append, force=False):
|
||||
def album_to_playlist(self, album, artist, year, mode="default"):
|
||||
songs=self.find("album", album, "date", year, self.settings.get_artist_type(), artist)
|
||||
self.files_to_playlist([song['file'] for song in songs], append, force)
|
||||
self.files_to_playlist([song['file'] for song in songs], mode)
|
||||
|
||||
def comp_list(self, *args): # simulates listing behavior of python-mpd2 1.0
|
||||
native_list=self.list(*args)
|
||||
@ -1009,14 +1022,20 @@ class SearchWindow(Gtk.Box):
|
||||
# label
|
||||
self.label=Gtk.Label()
|
||||
self.label.set_xalign(1)
|
||||
self.label.set_margin_end(6)
|
||||
|
||||
# store
|
||||
# (track, title, artist, album, duration, file)
|
||||
self.store=Gtk.ListStore(int, str, str, str, str, str)
|
||||
|
||||
# songs window
|
||||
self.songs_window=SongsWindow(self.client, self.store, 5)
|
||||
|
||||
# action bar
|
||||
self.action_bar=self.songs_window.get_actionbar()
|
||||
self.action_bar.set_sensitive(False)
|
||||
|
||||
# songs view
|
||||
self.songs_view=SongsView(self.client, self.store, 5)
|
||||
self.songs_view=self.songs_window.get_treeview()
|
||||
|
||||
# columns
|
||||
renderer_text=Gtk.CellRendererText(ellipsize=Pango.EllipsizeMode.END, ellipsize_set=True)
|
||||
@ -1056,52 +1075,21 @@ class SearchWindow(Gtk.Box):
|
||||
self.column_album.set_sort_column_id(3)
|
||||
self.column_time.set_sort_column_id(4)
|
||||
|
||||
# scroll
|
||||
scroll=Gtk.ScrolledWindow()
|
||||
scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
|
||||
scroll.add(self.songs_view)
|
||||
|
||||
# buttons
|
||||
self.add_button=Gtk.Button(image=Gtk.Image(stock=Gtk.STOCK_ADD), label=_("Add"))
|
||||
self.add_button.set_sensitive(False)
|
||||
self.add_button.set_relief(Gtk.ReliefStyle.NONE)
|
||||
self.play_button=Gtk.Button(image=Gtk.Image(stock=Gtk.STOCK_MEDIA_PLAY), label=_("Play"))
|
||||
self.play_button.set_sensitive(False)
|
||||
self.play_button.set_relief(Gtk.ReliefStyle.NONE)
|
||||
self.open_button=Gtk.Button(image=Gtk.Image(stock=Gtk.STOCK_OPEN), label=_("Open"))
|
||||
self.open_button.set_sensitive(False)
|
||||
self.open_button.set_relief(Gtk.ReliefStyle.NONE)
|
||||
|
||||
# connect
|
||||
self.search_entry.connect("search-changed", self.on_search_changed)
|
||||
self.tags.connect("changed", self.on_search_changed)
|
||||
self.add_button.connect("clicked", self.on_add_clicked)
|
||||
self.play_button.connect("clicked", self.on_play_clicked)
|
||||
self.open_button.connect("clicked", self.on_open_clicked)
|
||||
self.client.emitter.connect("reconnected", self.on_reconnected)
|
||||
self.client.emitter.connect("disconnected", self.on_disconnected)
|
||||
|
||||
# packing
|
||||
vbox=Gtk.Box(spacing=6)
|
||||
vbox.set_property("border-width", 6)
|
||||
vbox.pack_start(self.search_entry, True, True, 0)
|
||||
vbox.pack_end(self.tags, False, False, 0)
|
||||
frame=FocusFrame()
|
||||
frame.set_widget(self.songs_view)
|
||||
frame.add(scroll)
|
||||
ButtonBox=Gtk.ButtonBox(spacing=1)
|
||||
ButtonBox.set_property("border-width", 1)
|
||||
ButtonBox.pack_start(self.add_button, True, True, 0)
|
||||
ButtonBox.pack_start(self.play_button, True, True, 0)
|
||||
ButtonBox.pack_start(self.open_button, True, True, 0)
|
||||
hbox=Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
|
||||
hbox.pack_start(ButtonBox, 0, False, False)
|
||||
hbox.pack_end(self.label, 0, False, False)
|
||||
self.pack_start(vbox, False, False, 0)
|
||||
self.pack_start(Gtk.Separator.new(orientation=Gtk.Orientation.HORIZONTAL), False, False, 0)
|
||||
self.pack_start(frame, True, True, 0)
|
||||
self.pack_start(Gtk.Separator.new(orientation=Gtk.Orientation.HORIZONTAL), False, False, 0)
|
||||
hbox=Gtk.Box(spacing=6)
|
||||
hbox.set_property("border-width", 6)
|
||||
hbox.pack_start(self.search_entry, True, True, 0)
|
||||
hbox.pack_end(self.tags, False, False, 0)
|
||||
self.action_bar.pack_end(self.label)
|
||||
self.pack_start(hbox, False, False, 0)
|
||||
self.pack_start(Gtk.Separator.new(orientation=Gtk.Orientation.HORIZONTAL), False, False, 0)
|
||||
self.pack_start(self.songs_window, True, True, 0)
|
||||
|
||||
def start(self):
|
||||
self.search_entry.grab_focus()
|
||||
@ -1138,22 +1126,9 @@ class SearchWindow(Gtk.Box):
|
||||
self.store.append([int(song["track"]), song["title"], song["artist"], song["album"], song["human_duration"], song["file"]])
|
||||
self.label.set_text(_("hits: %i") % (self.songs_view.count()))
|
||||
if self.songs_view.count() == 0:
|
||||
self.add_button.set_sensitive(False)
|
||||
self.play_button.set_sensitive(False)
|
||||
self.open_button.set_sensitive(False)
|
||||
self.action_bar.set_sensitive(False)
|
||||
else:
|
||||
self.add_button.set_sensitive(True)
|
||||
self.play_button.set_sensitive(True)
|
||||
self.open_button.set_sensitive(True)
|
||||
|
||||
def on_add_clicked(self, *args):
|
||||
self.client.wrapped_call("files_to_playlist", self.songs_view.get_files(), True)
|
||||
|
||||
def on_play_clicked(self, *args):
|
||||
self.client.wrapped_call("files_to_playlist", self.songs_view.get_files(), False, True)
|
||||
|
||||
def on_open_clicked(self, *args):
|
||||
self.client.wrapped_call("files_to_playlist", self.songs_view.get_files(), False)
|
||||
self.action_bar.set_sensitive(True)
|
||||
|
||||
class SongsView(Gtk.TreeView):
|
||||
def __init__(self, client, store, file_column_id):
|
||||
@ -1177,19 +1152,19 @@ class SongsView(Gtk.TreeView):
|
||||
self.key_press_event=self.connect("key-press-event", self.on_key_press_event)
|
||||
|
||||
def on_row_activated(self, widget, path, view_column):
|
||||
self.client.wrapped_call("files_to_playlist", [self.store[path][self.file_column_id]], False, True)
|
||||
self.client.wrapped_call("files_to_playlist", [self.store[path][self.file_column_id]], "play")
|
||||
|
||||
def on_button_press_event(self, widget, event):
|
||||
if event.button == 1 and event.type == Gdk.EventType.BUTTON_PRESS:
|
||||
try:
|
||||
path=widget.get_path_at_pos(int(event.x), int(event.y))[0]
|
||||
self.client.wrapped_call("files_to_playlist", [self.store[path][self.file_column_id]], False)
|
||||
self.client.wrapped_call("files_to_playlist", [self.store[path][self.file_column_id]])
|
||||
except:
|
||||
pass
|
||||
elif event.button == 2 and event.type == Gdk.EventType.BUTTON_PRESS:
|
||||
try:
|
||||
path=widget.get_path_at_pos(int(event.x), int(event.y))[0]
|
||||
self.client.wrapped_call("files_to_playlist", [self.store[path][self.file_column_id]], True)
|
||||
self.client.wrapped_call("files_to_playlist", [self.store[path][self.file_column_id]], "append")
|
||||
except:
|
||||
pass
|
||||
elif event.button == 3 and event.type == Gdk.EventType.BUTTON_PRESS:
|
||||
@ -1207,11 +1182,11 @@ class SongsView(Gtk.TreeView):
|
||||
if event.keyval == 112: # p
|
||||
treeview, treeiter=self.selection.get_selected()
|
||||
if not treeiter == None:
|
||||
self.client.wrapped_call("files_to_playlist", [self.store.get_value(treeiter, self.file_column_id)], False)
|
||||
self.client.wrapped_call("files_to_playlist", [self.store.get_value(treeiter, self.file_column_id)])
|
||||
elif event.keyval == 97: # a
|
||||
treeview, treeiter=self.selection.get_selected()
|
||||
if not treeiter == None:
|
||||
self.client.wrapped_call("files_to_playlist", [self.store.get_value(treeiter, self.file_column_id)], True)
|
||||
self.client.wrapped_call("files_to_playlist", [self.store.get_value(treeiter, self.file_column_id)], "append")
|
||||
elif event.keyval == 65383: # menu key
|
||||
treeview, treeiter=self.selection.get_selected()
|
||||
if not treeiter == None:
|
||||
@ -1235,10 +1210,81 @@ class SongsView(Gtk.TreeView):
|
||||
return_list.append(row[self.file_column_id])
|
||||
return return_list
|
||||
|
||||
class SongsWindow(Gtk.Box):
|
||||
def __init__(self, client, store, file_column_id):
|
||||
Gtk.Box.__init__(self, orientation=Gtk.Orientation.VERTICAL)
|
||||
|
||||
# adding vars
|
||||
self.client=client
|
||||
self.store=store
|
||||
|
||||
# treeview
|
||||
self.songs_view=SongsView(client, store, file_column_id)
|
||||
|
||||
# scroll
|
||||
scroll=Gtk.ScrolledWindow()
|
||||
scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
|
||||
scroll.add(self.songs_view)
|
||||
|
||||
# buttons
|
||||
self.append_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("list-add", Gtk.IconSize.BUTTON), label=_("Append"))
|
||||
self.append_button.set_tooltip_text(_("Add all titles to playlist"))
|
||||
self.play_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("media-playback-start", Gtk.IconSize.BUTTON), label=_("Play"))
|
||||
self.play_button.set_tooltip_text(_("Directly play all titles"))
|
||||
self.enqueue_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("insert-object", Gtk.IconSize.BUTTON), label=_("Enqueue"))
|
||||
self.enqueue_button.set_tooltip_text(_("Append all titles after the currently playing track and clear the playlist from all other songs"))
|
||||
|
||||
# button box
|
||||
button_box=Gtk.ButtonBox()
|
||||
button_box.set_property("layout-style", Gtk.ButtonBoxStyle.EXPAND)
|
||||
|
||||
# action bar
|
||||
self.action_bar=Gtk.ActionBar()
|
||||
|
||||
# connect
|
||||
self.append_button.connect("clicked", self.on_append_button_clicked)
|
||||
self.play_button.connect("clicked", self.on_play_button_clicked)
|
||||
self.enqueue_button.connect("clicked", self.on_enqueue_button_clicked)
|
||||
|
||||
# packing
|
||||
frame=FocusFrame()
|
||||
frame.set_widget(self.songs_view)
|
||||
frame.add(scroll)
|
||||
self.pack_start(frame, True, True, 0)
|
||||
button_box.pack_start(self.append_button, True, True, 0)
|
||||
button_box.pack_start(self.play_button, True, True, 0)
|
||||
button_box.pack_start(self.enqueue_button, True, True, 0)
|
||||
self.action_bar.pack_start(button_box)
|
||||
self.pack_start(self.action_bar, False, False, 0)
|
||||
|
||||
def get_treeview(self):
|
||||
return self.songs_view
|
||||
|
||||
def get_actionbar(self):
|
||||
return self.action_bar
|
||||
|
||||
def on_append_button_clicked(self, *args):
|
||||
self.client.wrapped_call("files_to_playlist", self.songs_view.get_files(), "append")
|
||||
|
||||
def on_play_button_clicked(self, *args):
|
||||
self.client.wrapped_call("files_to_playlist", self.songs_view.get_files(), "play")
|
||||
|
||||
def on_enqueue_button_clicked(self, *args):
|
||||
self.client.wrapped_call("files_to_playlist", self.songs_view.get_files(), "enqueue")
|
||||
|
||||
class AlbumDialog(Gtk.Dialog):
|
||||
def __init__(self, parent, client, settings, album, artist, year):
|
||||
Gtk.Dialog.__init__(self, transient_for=parent)
|
||||
self.add_buttons(Gtk.STOCK_ADD, Gtk.ResponseType.ACCEPT, Gtk.STOCK_MEDIA_PLAY, Gtk.ResponseType.YES, Gtk.STOCK_OPEN, Gtk.ResponseType.OK, Gtk.STOCK_CLOSE, Gtk.ResponseType.CLOSE)
|
||||
use_csd=settings.get_boolean("use-csd")
|
||||
if use_csd:
|
||||
Gtk.Dialog.__init__(self, transient_for=parent, use_header_bar=True)
|
||||
# css
|
||||
style_context=self.get_style_context()
|
||||
provider=Gtk.CssProvider()
|
||||
css=b"""* {-GtkDialog-content-area-border: 0px;}"""
|
||||
provider.load_from_data(css)
|
||||
style_context.add_provider(provider, 800)
|
||||
else:
|
||||
Gtk.Dialog.__init__(self, transient_for=parent)
|
||||
|
||||
# metadata
|
||||
self.album=album
|
||||
@ -1267,9 +1313,6 @@ class AlbumDialog(Gtk.Dialog):
|
||||
# store
|
||||
# (track, title (artist), duration, file)
|
||||
self.store=Gtk.ListStore(int, str, str, str)
|
||||
|
||||
# songs view
|
||||
self.songs_view=SongsView(self.client, self.store, 3)
|
||||
for s in songs:
|
||||
song=ClientHelper.extend_song_for_display(s)
|
||||
if type(song["title"]) == list: # could be impossible
|
||||
@ -1291,6 +1334,12 @@ class AlbumDialog(Gtk.Dialog):
|
||||
title_artist=title_artist.replace("&", "&")
|
||||
self.store.append([int(song["track"]), title_artist, song["human_duration"], song["file"]])
|
||||
|
||||
# songs window
|
||||
self.songs_window=SongsWindow(self.client, self.store, 3)
|
||||
|
||||
# songs view
|
||||
self.songs_view=self.songs_window.get_treeview()
|
||||
|
||||
# columns
|
||||
renderer_text=Gtk.CellRendererText(ellipsize=Pango.EllipsizeMode.END, ellipsize_set=True)
|
||||
renderer_text_ralign=Gtk.CellRendererText(xalign=1.0)
|
||||
@ -1311,24 +1360,25 @@ class AlbumDialog(Gtk.Dialog):
|
||||
self.column_time.set_property("resizable", False)
|
||||
self.songs_view.append_column(self.column_time)
|
||||
|
||||
# scroll
|
||||
scroll=Gtk.ScrolledWindow()
|
||||
scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
|
||||
scroll.add(self.songs_view)
|
||||
# close button
|
||||
close_button=Gtk.ToggleButton(image=Gtk.Image.new_from_icon_name("window-close", Gtk.IconSize.BUTTON), label=_("Close"))
|
||||
|
||||
# action bar
|
||||
action_bar=self.songs_window.get_actionbar()
|
||||
action_bar.pack_end(close_button)
|
||||
|
||||
# connect
|
||||
close_button.connect("clicked", self.on_close_button_clicked)
|
||||
|
||||
# packing
|
||||
self.vbox.pack_start(scroll, True, True, 0) # vbox default widget of dialogs
|
||||
self.vbox.set_spacing(3)
|
||||
self.vbox.pack_start(self.songs_window, True, True, 0) # vbox default widget of dialogs
|
||||
self.show_all()
|
||||
|
||||
def open(self):
|
||||
response=self.run()
|
||||
if response == Gtk.ResponseType.OK:
|
||||
self.client.wrapped_call("album_to_playlist", self.album, self.artist, self.year, False)
|
||||
elif response == Gtk.ResponseType.ACCEPT:
|
||||
self.client.wrapped_call("album_to_playlist", self.album, self.artist, self.year, True)
|
||||
elif response == Gtk.ResponseType.YES:
|
||||
self.client.wrapped_call("album_to_playlist", self.album, self.artist, self.year, False, True)
|
||||
|
||||
def on_close_button_clicked(self, *args):
|
||||
self.destroy()
|
||||
|
||||
class GenreSelect(Gtk.ComboBoxText):
|
||||
def __init__(self, client, settings):
|
||||
@ -1649,11 +1699,11 @@ class AlbumIconView(Gtk.IconView):
|
||||
self.scroll_to_path(path, True, 0, 0)
|
||||
break
|
||||
|
||||
def path_to_playlist(self, path, add, force=False):
|
||||
def path_to_playlist(self, path, mode="default"):
|
||||
album=self.store[path][4]
|
||||
year=self.store[path][5]
|
||||
artist=self.store[path][6]
|
||||
self.client.wrapped_call("album_to_playlist", album, artist, year, add, force)
|
||||
self.client.wrapped_call("album_to_playlist", album, artist, year, mode)
|
||||
|
||||
def open_album_dialog(self, path):
|
||||
if self.client.connected():
|
||||
@ -1674,9 +1724,9 @@ class AlbumIconView(Gtk.IconView):
|
||||
if not path == None:
|
||||
if self.button_event == (event.button, path):
|
||||
if event.button == 1 and event.type == Gdk.EventType.BUTTON_RELEASE:
|
||||
self.path_to_playlist(path, False)
|
||||
self.path_to_playlist(path)
|
||||
elif event.button == 2 and event.type == Gdk.EventType.BUTTON_RELEASE:
|
||||
self.path_to_playlist(path, True)
|
||||
self.path_to_playlist(path, "append")
|
||||
elif event.button == 3 and event.type == Gdk.EventType.BUTTON_RELEASE:
|
||||
self.open_album_dialog(path)
|
||||
|
||||
@ -1685,11 +1735,11 @@ class AlbumIconView(Gtk.IconView):
|
||||
if event.keyval == 112: # p
|
||||
paths=self.get_selected_items()
|
||||
if not len(paths) == 0:
|
||||
self.path_to_playlist(paths[0], False)
|
||||
self.path_to_playlist(paths[0])
|
||||
elif event.keyval == 97: # a
|
||||
paths=self.get_selected_items()
|
||||
if not len(paths) == 0:
|
||||
self.path_to_playlist(paths[0], True)
|
||||
self.path_to_playlist(paths[0], "append")
|
||||
elif event.keyval == 65383: # menu key
|
||||
paths=self.get_selected_items()
|
||||
if not len(paths) == 0:
|
||||
@ -1701,7 +1751,7 @@ class AlbumIconView(Gtk.IconView):
|
||||
selected_album=self.store.get_value(treeiter, 4)
|
||||
selected_album_year=self.store.get_value(treeiter, 5)
|
||||
selected_artist=self.store.get_value(treeiter, 6)
|
||||
self.client.wrapped_call("album_to_playlist", selected_album, selected_artist, selected_album_year, False, True)
|
||||
self.client.wrapped_call("album_to_playlist", selected_album, selected_artist, selected_album_year, "play")
|
||||
|
||||
class AlbumView(FocusFrame):
|
||||
def __init__(self, client, settings, genre_select, window):
|
||||
@ -2126,9 +2176,9 @@ class MainCover(Gtk.Frame):
|
||||
except:
|
||||
album_year=""
|
||||
if event.button == 1 and event.type == Gdk.EventType.BUTTON_PRESS:
|
||||
self.client.wrapped_call("album_to_playlist", album, artist, album_year, False)
|
||||
self.client.wrapped_call("album_to_playlist", album, artist, album_year)
|
||||
elif event.button == 2 and event.type == Gdk.EventType.BUTTON_PRESS:
|
||||
self.client.wrapped_call("album_to_playlist", album, artist, album_year, True)
|
||||
self.client.wrapped_call("album_to_playlist", album, artist, album_year, "append")
|
||||
elif event.button == 3 and event.type == Gdk.EventType.BUTTON_PRESS:
|
||||
album_dialog=AlbumDialog(self.window, self.client, self.settings, album, artist, album_year)
|
||||
album_dialog.open()
|
||||
|
192
po/de.po
192
po/de.po
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-08-09 22:22+0200\n"
|
||||
"PO-Revision-Date: 2020-08-09 22:23+0200\n"
|
||||
"POT-Creation-Date: 2020-08-16 17:01+0200\n"
|
||||
"PO-Revision-Date: 2020-08-16 17:07+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: de\n"
|
||||
@ -38,82 +38,102 @@ msgstr "Unbekannter Interpret"
|
||||
msgid "Unknown Album"
|
||||
msgstr "Unbekanntes Album"
|
||||
|
||||
#: mpdevil.py:1026 mpdevil.py:1291 mpdevil.py:2145 mpdevil.py:2823
|
||||
#: mpdevil.py:1044 mpdevil.py:1347 mpdevil.py:2225 mpdevil.py:2910
|
||||
msgid "No"
|
||||
msgstr "Nr."
|
||||
|
||||
#: mpdevil.py:1031 mpdevil.py:1296 mpdevil.py:2151 mpdevil.py:2823
|
||||
#: mpdevil.py:1049 mpdevil.py:1352 mpdevil.py:2231 mpdevil.py:2910
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
|
||||
#: mpdevil.py:1037 mpdevil.py:1435 mpdevil.py:2154 mpdevil.py:2823
|
||||
#: mpdevil.py:1055 mpdevil.py:1502 mpdevil.py:2234 mpdevil.py:2910
|
||||
msgid "Artist"
|
||||
msgstr "Interpret"
|
||||
|
||||
#: mpdevil.py:1043 mpdevil.py:2157 mpdevil.py:2823
|
||||
#: mpdevil.py:1061 mpdevil.py:2237 mpdevil.py:2910
|
||||
msgid "Album"
|
||||
msgstr "Album"
|
||||
|
||||
#: mpdevil.py:1049 mpdevil.py:1302 mpdevil.py:2160 mpdevil.py:2823
|
||||
#: mpdevil.py:1067 mpdevil.py:1358 mpdevil.py:2240 mpdevil.py:2910
|
||||
msgid "Length"
|
||||
msgstr "Länge"
|
||||
|
||||
#: mpdevil.py:1066
|
||||
msgid "Add"
|
||||
msgstr "Hinzufügen"
|
||||
|
||||
#: mpdevil.py:1069
|
||||
msgid "Play"
|
||||
msgstr "Wiedergabe"
|
||||
|
||||
#: mpdevil.py:1072
|
||||
msgid "Open"
|
||||
msgstr "Öffnen"
|
||||
|
||||
#: mpdevil.py:1132
|
||||
#: mpdevil.py:1127
|
||||
#, python-format
|
||||
msgid "hits: %i"
|
||||
msgstr "Treffer: %i"
|
||||
|
||||
#: mpdevil.py:1345
|
||||
#: mpdevil.py:1230
|
||||
msgid "Append"
|
||||
msgstr "Anhängen"
|
||||
|
||||
#: mpdevil.py:1231
|
||||
msgid "Add all titles to playlist"
|
||||
msgstr "Alle Titel der Wiedergabeliste anhängen"
|
||||
|
||||
#: mpdevil.py:1232
|
||||
msgid "Play"
|
||||
msgstr "Abspielen"
|
||||
|
||||
#: mpdevil.py:1233
|
||||
msgid "Directly play all titles"
|
||||
msgstr "Alle Titel sofort abspielen"
|
||||
|
||||
#: mpdevil.py:1234
|
||||
msgid "Enqueue"
|
||||
msgstr "Einreihen"
|
||||
|
||||
#: mpdevil.py:1235
|
||||
msgid ""
|
||||
"Append all titles after the currently playing track and clear the playlist "
|
||||
"from all other songs"
|
||||
msgstr ""
|
||||
"Alle Titel hinter dem aktuellen Stück einreihen und die Wiedergabeliste "
|
||||
"sonst leeren"
|
||||
|
||||
#: mpdevil.py:1364
|
||||
msgid "Close"
|
||||
msgstr "Schließen"
|
||||
|
||||
#: mpdevil.py:1403
|
||||
msgid "all genres"
|
||||
msgstr "Alle Genres"
|
||||
|
||||
#: mpdevil.py:1433
|
||||
#: mpdevil.py:1500
|
||||
msgid "Album Artist"
|
||||
msgstr "Albuminterpret"
|
||||
|
||||
#: mpdevil.py:1436
|
||||
#: mpdevil.py:1503
|
||||
msgid "all artists"
|
||||
msgstr "Alle Interpreten"
|
||||
|
||||
#: mpdevil.py:1582
|
||||
#: mpdevil.py:1665
|
||||
#, 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:1584 mpdevil.py:2249
|
||||
#: mpdevil.py:1667 mpdevil.py:2330
|
||||
#, python-format
|
||||
msgid "%(total_tracks)i titles (%(total_length)s)"
|
||||
msgstr "%(total_tracks)i Titel (%(total_length)s)"
|
||||
|
||||
#: mpdevil.py:1759
|
||||
#: mpdevil.py:1848
|
||||
msgid "Back to current album"
|
||||
msgstr "Zurück zu aktuellem Album"
|
||||
|
||||
#: mpdevil.py:1761
|
||||
#: mpdevil.py:1850
|
||||
msgid "Search"
|
||||
msgstr "Suche"
|
||||
|
||||
#: mpdevil.py:1938
|
||||
#: mpdevil.py:2018
|
||||
msgid "searching..."
|
||||
msgstr "suche..."
|
||||
|
||||
#: mpdevil.py:1942
|
||||
#: mpdevil.py:2022
|
||||
msgid "lyrics not found"
|
||||
msgstr "Liedtext nicht gefunden"
|
||||
|
||||
#: mpdevil.py:2010
|
||||
#: mpdevil.py:2090
|
||||
#, python-format
|
||||
msgid ""
|
||||
"%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)i bit, %(channels)i "
|
||||
@ -122,111 +142,111 @@ msgstr ""
|
||||
"%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)i bit, %(channels)i "
|
||||
"Kanäle, %(file_type)s"
|
||||
|
||||
#: mpdevil.py:2124
|
||||
#: mpdevil.py:2204
|
||||
msgid "Scroll to current song"
|
||||
msgstr "Gehe zu aktuellem Lied"
|
||||
|
||||
#: mpdevil.py:2148 mpdevil.py:2823
|
||||
#: mpdevil.py:2228 mpdevil.py:2910
|
||||
msgid "Disc"
|
||||
msgstr "CD"
|
||||
|
||||
#: mpdevil.py:2163 mpdevil.py:2823
|
||||
#: mpdevil.py:2243 mpdevil.py:2910
|
||||
msgid "Year"
|
||||
msgstr "Jahr"
|
||||
|
||||
#: mpdevil.py:2166 mpdevil.py:2823
|
||||
#: mpdevil.py:2246 mpdevil.py:2910
|
||||
msgid "Genre"
|
||||
msgstr "Genre"
|
||||
|
||||
#: mpdevil.py:2363
|
||||
#: mpdevil.py:2448
|
||||
msgid "Show lyrics"
|
||||
msgstr "Zeige Liedtext"
|
||||
|
||||
#: mpdevil.py:2462
|
||||
#: mpdevil.py:2547
|
||||
msgid "Main cover size:"
|
||||
msgstr "Größe des Haupt-Covers:"
|
||||
|
||||
#: mpdevil.py:2463
|
||||
#: mpdevil.py:2548
|
||||
msgid "Album view cover size:"
|
||||
msgstr "Covergröße in Albumliste:"
|
||||
|
||||
#: mpdevil.py:2464
|
||||
#: mpdevil.py:2549
|
||||
msgid "Button icon size:"
|
||||
msgstr "Symbolgröße der Knöpfe:"
|
||||
|
||||
#: mpdevil.py:2474
|
||||
#: mpdevil.py:2559
|
||||
msgid "Sort albums by:"
|
||||
msgstr "Sortiere Alben nach:"
|
||||
|
||||
#: mpdevil.py:2474
|
||||
#: mpdevil.py:2559
|
||||
msgid "name"
|
||||
msgstr "Name"
|
||||
|
||||
#: mpdevil.py:2474
|
||||
#: mpdevil.py:2559
|
||||
msgid "year"
|
||||
msgstr "Jahr"
|
||||
|
||||
#: mpdevil.py:2475
|
||||
#: mpdevil.py:2560
|
||||
msgid "Position of playlist:"
|
||||
msgstr "Wiedergabelistenposition:"
|
||||
|
||||
#: mpdevil.py:2475
|
||||
#: mpdevil.py:2560
|
||||
msgid "bottom"
|
||||
msgstr "unten"
|
||||
|
||||
#: mpdevil.py:2475
|
||||
#: mpdevil.py:2560
|
||||
msgid "right"
|
||||
msgstr "rechts"
|
||||
|
||||
#: mpdevil.py:2492
|
||||
#: mpdevil.py:2577
|
||||
msgid "Use Client-side decoration"
|
||||
msgstr "Benutze \"Client-side decoration\""
|
||||
|
||||
#: mpdevil.py:2493
|
||||
#: mpdevil.py:2578
|
||||
msgid "Show stop button"
|
||||
msgstr "Zeige Stopp-Knopf"
|
||||
|
||||
#: mpdevil.py:2494
|
||||
#: mpdevil.py:2579
|
||||
msgid "Show lyrics button"
|
||||
msgstr "Zeige Liedtext-Knopf"
|
||||
|
||||
#: mpdevil.py:2495
|
||||
#: mpdevil.py:2580
|
||||
msgid "Show initials in artist view"
|
||||
msgstr "Zeige Anfangsbuchstaben in Interpretenliste"
|
||||
|
||||
#: mpdevil.py:2496
|
||||
#: mpdevil.py:2581
|
||||
msgid "Show tooltips in album view"
|
||||
msgstr "Zeige Tooltips in Albumliste"
|
||||
|
||||
#: mpdevil.py:2497
|
||||
#: mpdevil.py:2582
|
||||
msgid "Use 'Album Artist' tag"
|
||||
msgstr "Benutze \"Album Artist\" Tag"
|
||||
|
||||
#: mpdevil.py:2498
|
||||
#: mpdevil.py:2583
|
||||
msgid "Send notification on title change"
|
||||
msgstr "Sende Benachrichtigung bei Titelwechsel"
|
||||
|
||||
#: mpdevil.py:2499
|
||||
#: mpdevil.py:2584
|
||||
msgid "Stop playback on quit"
|
||||
msgstr "Wiedergabe beim Beenden stoppen"
|
||||
|
||||
#: mpdevil.py:2500
|
||||
#: mpdevil.py:2585
|
||||
msgid "Play selected albums and titles immediately"
|
||||
msgstr "Ausgewählte Alben und Titel sofort abspielen"
|
||||
|
||||
#: mpdevil.py:2511
|
||||
#: mpdevil.py:2596
|
||||
msgid "<b>View</b>"
|
||||
msgstr "<b>Ansicht</b>"
|
||||
|
||||
#: mpdevil.py:2514
|
||||
#: mpdevil.py:2599
|
||||
msgid "<b>Behavior</b>"
|
||||
msgstr "<b>Verhalten</b>"
|
||||
|
||||
#: mpdevil.py:2545
|
||||
#: mpdevil.py:2630
|
||||
msgid "(restart required)"
|
||||
msgstr "(Neustart erforderlich)"
|
||||
|
||||
#: mpdevil.py:2626
|
||||
#: mpdevil.py:2711
|
||||
msgid ""
|
||||
"The first image in the same directory as the song file matching this regex "
|
||||
"will be displayed. %AlbumArtist% and %Album% will be replaced by the "
|
||||
@ -236,112 +256,118 @@ msgstr ""
|
||||
"regulären Ausdruck entspricht, wird angezeigt. %AlbumArtist% und %Album% "
|
||||
"werden durch die entsprechenden Tags des Liedes ersetzt."
|
||||
|
||||
#: mpdevil.py:2628
|
||||
#: mpdevil.py:2713
|
||||
msgid "Profile:"
|
||||
msgstr "Profil:"
|
||||
|
||||
#: mpdevil.py:2630
|
||||
#: mpdevil.py:2715
|
||||
msgid "Name:"
|
||||
msgstr "Name:"
|
||||
|
||||
#: mpdevil.py:2632
|
||||
#: mpdevil.py:2717
|
||||
msgid "Host:"
|
||||
msgstr "Host:"
|
||||
|
||||
#: mpdevil.py:2634
|
||||
#: mpdevil.py:2719
|
||||
msgid "Password:"
|
||||
msgstr "Passwort:"
|
||||
|
||||
#: mpdevil.py:2636
|
||||
#: mpdevil.py:2721
|
||||
msgid "Music lib:"
|
||||
msgstr "Musikverzeichnis:"
|
||||
|
||||
#: mpdevil.py:2638
|
||||
#: mpdevil.py:2723
|
||||
msgid "Cover regex:"
|
||||
msgstr "Cover-Regex:"
|
||||
|
||||
#: mpdevil.py:2761
|
||||
#: mpdevil.py:2848
|
||||
msgid "Choose directory"
|
||||
msgstr "Verzeichnis Wählen"
|
||||
|
||||
#: mpdevil.py:2795
|
||||
#: mpdevil.py:2882
|
||||
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:2937 mpdevil.py:3447
|
||||
#: mpdevil.py:3026 mpdevil.py:3034 mpdevil.py:3569
|
||||
msgid "Settings"
|
||||
msgstr "Einstellungen"
|
||||
|
||||
#: mpdevil.py:2951
|
||||
#: mpdevil.py:3045
|
||||
msgid "General"
|
||||
msgstr "Allgemein"
|
||||
|
||||
#: mpdevil.py:2952
|
||||
#: mpdevil.py:3046
|
||||
msgid "Profiles"
|
||||
msgstr "Profile"
|
||||
|
||||
#: mpdevil.py:2953
|
||||
#: mpdevil.py:3047
|
||||
msgid "Playlist"
|
||||
msgstr "Wiedergabeliste"
|
||||
|
||||
#: mpdevil.py:3212
|
||||
#: mpdevil.py:3310
|
||||
msgid "Random mode"
|
||||
msgstr "Zufallsmodus"
|
||||
|
||||
#: mpdevil.py:3214
|
||||
#: mpdevil.py:3312
|
||||
msgid "Repeat mode"
|
||||
msgstr "Dauerschleife"
|
||||
|
||||
#: mpdevil.py:3216
|
||||
#: mpdevil.py:3314
|
||||
msgid "Single mode"
|
||||
msgstr "Einzelstückmodus"
|
||||
|
||||
#: mpdevil.py:3218
|
||||
#: mpdevil.py:3316
|
||||
msgid "Consume mode"
|
||||
msgstr "Wiedergabeliste verbrauchen"
|
||||
|
||||
#: mpdevil.py:3295
|
||||
#: mpdevil.py:3408 mpdevil.py:3416
|
||||
msgid "Stats"
|
||||
msgstr "Statistik"
|
||||
|
||||
#: mpdevil.py:3348
|
||||
#: mpdevil.py:3470
|
||||
msgid "A small MPD client written in python"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3440
|
||||
#: mpdevil.py:3562
|
||||
msgid "Select profile"
|
||||
msgstr "Profil auswählen"
|
||||
|
||||
#: mpdevil.py:3448
|
||||
#: mpdevil.py:3570
|
||||
msgid "Help"
|
||||
msgstr "Hilfe"
|
||||
|
||||
#: mpdevil.py:3449
|
||||
#: mpdevil.py:3571
|
||||
msgid "About"
|
||||
msgstr "Über"
|
||||
|
||||
#: mpdevil.py:3450
|
||||
#: mpdevil.py:3572
|
||||
msgid "Quit"
|
||||
msgstr "Beenden"
|
||||
|
||||
#: mpdevil.py:3453
|
||||
#: mpdevil.py:3575
|
||||
msgid "Save window layout"
|
||||
msgstr "Fensterlayout speichern"
|
||||
|
||||
#: mpdevil.py:3454
|
||||
#: mpdevil.py:3576
|
||||
msgid "Update database"
|
||||
msgstr "Datenbank aktualisieren"
|
||||
|
||||
#: mpdevil.py:3455
|
||||
#: mpdevil.py:3577
|
||||
msgid "Server stats"
|
||||
msgstr "Serverstatistik"
|
||||
|
||||
#: mpdevil.py:3461
|
||||
#: mpdevil.py:3583
|
||||
msgid "Menu"
|
||||
msgstr "Menü"
|
||||
|
||||
#~ msgid "Add"
|
||||
#~ msgstr "Hinzufügen"
|
||||
|
||||
#~ msgid "Open"
|
||||
#~ msgstr "Öffnen"
|
||||
|
||||
#~ msgid "Show additional information"
|
||||
#~ msgstr "Zeige weitere Informationen"
|
||||
|
||||
|
182
po/mpdevil.pot
182
po/mpdevil.pot
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-08-09 22:22+0200\n"
|
||||
"POT-Creation-Date: 2020-08-16 17:01+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"
|
||||
@ -37,299 +37,317 @@ msgstr ""
|
||||
msgid "Unknown Album"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1026 mpdevil.py:1291 mpdevil.py:2145 mpdevil.py:2823
|
||||
#: mpdevil.py:1044 mpdevil.py:1347 mpdevil.py:2225 mpdevil.py:2910
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1031 mpdevil.py:1296 mpdevil.py:2151 mpdevil.py:2823
|
||||
#: mpdevil.py:1049 mpdevil.py:1352 mpdevil.py:2231 mpdevil.py:2910
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1037 mpdevil.py:1435 mpdevil.py:2154 mpdevil.py:2823
|
||||
#: mpdevil.py:1055 mpdevil.py:1502 mpdevil.py:2234 mpdevil.py:2910
|
||||
msgid "Artist"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1043 mpdevil.py:2157 mpdevil.py:2823
|
||||
#: mpdevil.py:1061 mpdevil.py:2237 mpdevil.py:2910
|
||||
msgid "Album"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1049 mpdevil.py:1302 mpdevil.py:2160 mpdevil.py:2823
|
||||
#: mpdevil.py:1067 mpdevil.py:1358 mpdevil.py:2240 mpdevil.py:2910
|
||||
msgid "Length"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1066
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1069
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1072
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1132
|
||||
#: mpdevil.py:1127
|
||||
#, python-format
|
||||
msgid "hits: %i"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1345
|
||||
#: mpdevil.py:1230
|
||||
msgid "Append"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1231
|
||||
msgid "Add all titles to playlist"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1232
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1233
|
||||
msgid "Directly play all titles"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1234
|
||||
msgid "Enqueue"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1235
|
||||
msgid ""
|
||||
"Append all titles after the currently playing track and clear the playlist "
|
||||
"from all other songs"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1364
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1403
|
||||
msgid "all genres"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1433
|
||||
#: mpdevil.py:1500
|
||||
msgid "Album Artist"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1436
|
||||
#: mpdevil.py:1503
|
||||
msgid "all artists"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1582
|
||||
#: mpdevil.py:1665
|
||||
#, python-format
|
||||
msgid "%(total_tracks)i titles on %(discs)i discs (%(total_length)s)"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1584 mpdevil.py:2249
|
||||
#: mpdevil.py:1667 mpdevil.py:2330
|
||||
#, python-format
|
||||
msgid "%(total_tracks)i titles (%(total_length)s)"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1759
|
||||
#: mpdevil.py:1848
|
||||
msgid "Back to current album"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1761
|
||||
#: mpdevil.py:1850
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1938
|
||||
#: mpdevil.py:2018
|
||||
msgid "searching..."
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:1942
|
||||
#: mpdevil.py:2022
|
||||
msgid "lyrics not found"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2010
|
||||
#: mpdevil.py:2090
|
||||
#, python-format
|
||||
msgid ""
|
||||
"%(bitrate)s kb/s, %(frequency)s kHz, %(resolution)i bit, %(channels)i "
|
||||
"channels, %(file_type)s"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2124
|
||||
#: mpdevil.py:2204
|
||||
msgid "Scroll to current song"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2148 mpdevil.py:2823
|
||||
#: mpdevil.py:2228 mpdevil.py:2910
|
||||
msgid "Disc"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2163 mpdevil.py:2823
|
||||
#: mpdevil.py:2243 mpdevil.py:2910
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2166 mpdevil.py:2823
|
||||
#: mpdevil.py:2246 mpdevil.py:2910
|
||||
msgid "Genre"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2363
|
||||
#: mpdevil.py:2448
|
||||
msgid "Show lyrics"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2462
|
||||
#: mpdevil.py:2547
|
||||
msgid "Main cover size:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2463
|
||||
#: mpdevil.py:2548
|
||||
msgid "Album view cover size:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2464
|
||||
#: mpdevil.py:2549
|
||||
msgid "Button icon size:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2474
|
||||
#: mpdevil.py:2559
|
||||
msgid "Sort albums by:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2474
|
||||
#: mpdevil.py:2559
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2474
|
||||
#: mpdevil.py:2559
|
||||
msgid "year"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2475
|
||||
#: mpdevil.py:2560
|
||||
msgid "Position of playlist:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2475
|
||||
#: mpdevil.py:2560
|
||||
msgid "bottom"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2475
|
||||
#: mpdevil.py:2560
|
||||
msgid "right"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2492
|
||||
#: mpdevil.py:2577
|
||||
msgid "Use Client-side decoration"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2493
|
||||
#: mpdevil.py:2578
|
||||
msgid "Show stop button"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2494
|
||||
#: mpdevil.py:2579
|
||||
msgid "Show lyrics button"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2495
|
||||
#: mpdevil.py:2580
|
||||
msgid "Show initials in artist view"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2496
|
||||
#: mpdevil.py:2581
|
||||
msgid "Show tooltips in album view"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2497
|
||||
#: mpdevil.py:2582
|
||||
msgid "Use 'Album Artist' tag"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2498
|
||||
#: mpdevil.py:2583
|
||||
msgid "Send notification on title change"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2499
|
||||
#: mpdevil.py:2584
|
||||
msgid "Stop playback on quit"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2500
|
||||
#: mpdevil.py:2585
|
||||
msgid "Play selected albums and titles immediately"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2511
|
||||
#: mpdevil.py:2596
|
||||
msgid "<b>View</b>"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2514
|
||||
#: mpdevil.py:2599
|
||||
msgid "<b>Behavior</b>"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2545
|
||||
#: mpdevil.py:2630
|
||||
msgid "(restart required)"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2626
|
||||
#: mpdevil.py:2711
|
||||
msgid ""
|
||||
"The first image in the same directory as the song file matching this regex "
|
||||
"will be displayed. %AlbumArtist% and %Album% will be replaced by the "
|
||||
"corresponding tags of the song."
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2628
|
||||
#: mpdevil.py:2713
|
||||
msgid "Profile:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2630
|
||||
#: mpdevil.py:2715
|
||||
msgid "Name:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2632
|
||||
#: mpdevil.py:2717
|
||||
msgid "Host:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2634
|
||||
#: mpdevil.py:2719
|
||||
msgid "Password:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2636
|
||||
#: mpdevil.py:2721
|
||||
msgid "Music lib:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2638
|
||||
#: mpdevil.py:2723
|
||||
msgid "Cover regex:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2761
|
||||
#: mpdevil.py:2848
|
||||
msgid "Choose directory"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2795
|
||||
#: mpdevil.py:2882
|
||||
msgid "Choose the order of information to appear in the playlist:"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2937 mpdevil.py:3447
|
||||
#: mpdevil.py:3026 mpdevil.py:3034 mpdevil.py:3569
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2951
|
||||
#: mpdevil.py:3045
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2952
|
||||
#: mpdevil.py:3046
|
||||
msgid "Profiles"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:2953
|
||||
#: mpdevil.py:3047
|
||||
msgid "Playlist"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3212
|
||||
#: mpdevil.py:3310
|
||||
msgid "Random mode"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3214
|
||||
#: mpdevil.py:3312
|
||||
msgid "Repeat mode"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3216
|
||||
#: mpdevil.py:3314
|
||||
msgid "Single mode"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3218
|
||||
#: mpdevil.py:3316
|
||||
msgid "Consume mode"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3295
|
||||
#: mpdevil.py:3408 mpdevil.py:3416
|
||||
msgid "Stats"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3348
|
||||
#: mpdevil.py:3470
|
||||
msgid "A small MPD client written in python"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3440
|
||||
#: mpdevil.py:3562
|
||||
msgid "Select profile"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3448
|
||||
#: mpdevil.py:3570
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3449
|
||||
#: mpdevil.py:3571
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3450
|
||||
#: mpdevil.py:3572
|
||||
msgid "Quit"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3453
|
||||
#: mpdevil.py:3575
|
||||
msgid "Save window layout"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3454
|
||||
#: mpdevil.py:3576
|
||||
msgid "Update database"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3455
|
||||
#: mpdevil.py:3577
|
||||
msgid "Server stats"
|
||||
msgstr ""
|
||||
|
||||
#: mpdevil.py:3461
|
||||
#: mpdevil.py:3583
|
||||
msgid "Menu"
|
||||
msgstr ""
|
||||
|
Loading…
Reference in New Issue
Block a user